リアルタイムOS・はじめに

 リアルタイムOSとは、処理をリアルタイムに実行することを重視し、そのための機能を実装したOSのことで略称としてRTOS(Real-time operating system)とも呼ばれる。
 産業機械を制御するコンピュータなどでは、応答時間が一定の範囲内にあることが要求されるため、OSにもリアルタイム性を実現するための様々な機構が必要とされる。そのため、リアルタイムOSは、極力OSにかかるCPUの負荷を軽減させ、無駄を省いた設計となっている。以前は計測機器や工作機械の制御装置などの組込み分野で利用されていたが、近年では携帯電話やデジタル家電などにも利用されている。

 機器メーカーは、デジタル機器向けにリアルタイム性と多機能性を兼ね備える組込みOSを求めており、その有力候補がLinuxである。組込用のLinuxには、RT-Linuxなどがある。また、μITRONは日本国内で有名ではあるが、国際的な知名度はない。国際標準と捕らえたとき、Linuxが優位であることは、Linux採用の大きな理由となる。
 (ただし、Linuxにはハードリアルタイム性が要求されるアプリケーションには、一部の拡張を除いて採用できない)

 リアルタイムOSに要求される機能としては、

  1. タスクのスケジューリング
     リアルタイムOSは、マルチタスクOSであることが一般的。このため、CPUに割り当てるタスクをスケジューリングする必要がある。通常、タスクには優先度が設定されており、実行可能状態にあるタスクの中から、最高優先度のタスクをCPUに割り当てるようにスケジュールする。
     実行中のタスクを一時的に中断することをプリエンプションとよび、自身、もしくは他のタスクに実行を切り替えることをコンテキストスイッチと呼ぶ。
     プリエンプションやコンテキストスイッチは、OSが優先度に応じて行うのでタスク側で意識する必要はない。
     なお、プリエンプションが発生すると、データの破壊などが起こり、システムの動作が保証できない領域をクリティカルセクションと呼ぶ。この間はプリエンプションが発生しないようにマスクを行う必要があると同時に、実行時間に占める割合を可能な限り少なくしなければならない。
     
  2. タスク間通信、リソース共有
  3. 割り込みハンドラ
  4. メモリ管理

などがあげられる。

最終更新:2014年09月30日 16:24