メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

マルチタスク モードのマルチレート モデル化 (OS なしのベア ボード)

このモデルでは、マルチタスクのベアボード ターゲット (オペレーティング システムのないもの) に構成したマルチレートの離散時間モデル用の生成コードを説明します。

モデル例を開く

モデル例 MultirateMultitaskingBareBoard を開きます。

open_system('MultirateMultitaskingBareBoard')

モデル例の確認

このモデルには 2 つのサンプル時間が含まれています。Inport ブロック 1 と Inport ブロック 2 は、それぞれ 1 秒と 2 秒のサンプル時間を指定します。これには、モデル コンフィギュレーション パラメーター [周期的なサンプル時間の制約] の設定が適用されています。ソルバーにはマルチタスク動作が設定されています。つまり、1 秒のタスクが 2 秒のタスクをプリエンプトする場合に、Rate Transition ブロックではデータの整合性が確実に維持される必要があります。Simulink® および Simulink Coder™ によって適切なレート変換が常に適用されます。このモデルでは明示的に Rate Transition ブロックを指定します。または、モデル コンフィギュレーション パラメーター [データ転送に対するレート変換を自動的に取り扱う] を設定して Simulink でこのブロックを自動的に挿入できます。

このモデルは、ブロック線図の更新時にサンプル時間の色を表示するように設定されています。モデルを開いた後に表示するには、Ctrl+D を押してブロック線図を更新します。凡例を表示するには、Ctrl+J を押します。赤色はモデル内の最速の離散サンプル時間を表し、緑色は 2 番目に速いサンプル時間を、黄色は混在しているサンプル時間を表します。

データ転送の仮定

タスク間データ転送の操作の基礎:

  • 1 つの読み取りタスクと 1 つの書き込みタスクの間でデータ遷移が発生する。

  • バイト単位の変数の読み取りと書き込みはアトミックである。

  • データの遷移中に 2 つのタスクが対話した場合、一方のタスクがもう一方のタスクをプリエンプトする場合がある。

  • 周期的タスクの場合、速いレートのタスクの優先順位は遅いレートのタスクよりも高くなる。すなわち、速いレートのタスクは遅いレートのタスクを常にプリエンプトする。

  • タスクは 1 つのプロセッサ上で実行される。タイム スライスは許可されない。

  • プロセスは、特にデータがタスク間で転送されているときはクラッシュまたは再起動しない。