Soft RTOSとHard RTOSで異なるLayerの作り方

この投稿では、Soft RTOSとHard RTOSによるLaye作り方の違いについて説明します。

Soft RTOS

Soft RTOSは、時間制約はありますが、多少の遅延が許容されるシステム向けのRTOSです。

特徴:

  • デッドラインを守ることが望ましいが、多少の遅れは許容される
    → 例:動画再生、音声処理、ゲームなど
  • 遅延が発生しても致命的ではない
  • スケジューリングは柔軟性が高く、一般的なOSに近い
  • 実装が比較的簡単で、コストも低い

Hard RTOS

Hard RTOSは、密な時間制約を守る必要があるシステム向けのRTOSです。タスクの実行時間が絶対に保証される必要があります。

特徴:

  • デッドラインを絶対に守る
    → 1ミリ秒以内に処理しなければならないタスクが、必ずその時間内に完了する
  • タイミングの遅延が致命的
    → 例:航空機制御、医療機器、自動車制御など
  • 高精度なタイマーと割り込み制御が必要
  • スケジューリングは優先度ベースで、遅延を最小限に抑える

Soft RTOSとHard RTOSで異なるLayerの作り方

Soft RTOSのLayer構造は、下図のように下位のLayer関数を順番にコールすることが多いです。Layer間インタフェースは、関数の引数や戻り値で行います。

Hard RTOSのLayer構造は、下図のようにLayer関数の処理位置で決めます。Layer間インタフェースはグローバル変数等を用いることが多いです。この構造は、スパゲティ構造になりやすいので、Layer間インタフェースやコンポーネント間インタフェースを設けることをお勧めいたします。

OSS-ECAL Japanese
error: コンテンツは保護されている