Real-Time Workshop User's Guide | ![]() ![]() |
マルチタスクと擬似マルチタスク
マルチタスク環境では、最速のサンプルレートをもつモデルは最高の優先度をもつタスクにより実行され、つぎに速いブロックはつぎに高い優先度をもつタスクで実行されます。優先度の高いタスクの処理の間の利用可能な時間は、優先度の低いタスクにより使われます。これにより、効率的にプログラムを実行できます。
タスクタイミングのグラフィックな表現は、「マルチタスクシステムの実行」を参照してください。
マルチタスク環境(すなわち、リアルタイムオペレーティングシステム)では、別々のタスクを定義し、それらに優先度を割り当てることができます。ベアボードターゲット(リアルタイムオペレーティングシステムがない場合)は、別々のタスクを作成できません。しかし、Real-Time Workshopアプリケーションモジュールは、マニュアルのコンテキストスイッチに付随するオーバラップした割り込みを使って、事実上のマルチタスクの実行方法を実現します。
これは、割り込みを実行中に別の割り込みが起こることを示します。これが起こるとき、カレントの割り込みの代わりに、浮動小数点単位(FPU)が保存されて、優先度が高い割り込みが優先度が高い(サンプルレートが速い)コードを実行します。終了すると、制御は割り込まれたISRに戻ります。
つぎの図は、2つの環境下でReal-Time Workshopが複数のレートのシステムを扱う方法を示します。
図 7-3は、オーバラップした割り込みがどのように擬似マルチタスクを実現するかを示します。この場合、割り込み1, 2, 3の終了まで割り込み0には戻りません。
図 7-3: オーバラップした割り込みを使った擬似マルチタスク
![]() | マルチタスクモデルの実行 | マルチタスクの実行のためのプログラムのビルド | ![]() |