はじめに
組み込みソフトについての本を読んだ際に、特徴について一部まとめてみました。
組み込みソフトの特徴
- ソフトリアルタイムシステム
人間が操作する製品のように比較的時間制限に寛容なシステム - ハードリアルタイムシステム
製品同士が通信する場合のように厳格な時間制限を要求するシステム
[スケジュールリング]
複数のイベントに順序をつけて、どのイベントを優先して処理するかを制御する必要。
[優先度]
どの処理を優先させるか決定する
[リアルタイムシステムの目的]
複数のイベントに対し、制限時間内の応答を目指すこと
ソフトウェア構成
- カーネル
アプリケーションの実行・監視・制御を行う。 - デバイスドライバ
カーネルを利用して、入出力デバイスを制御し、アプリケーションが入出力を便利に行える機能を提供する。 - ミドルウェア
デバイスドライバとカーネルが提供する基本機能を利用して、アプリケーションに汎用的で便利な機能を提供するモジュール。
例として、ファイルシステム、GUI、通信などの一般的な機能に加え、動画像の圧縮・復元を行うMPEG、静止画像の圧縮・復元を行うJPEG、HTMLを表示するためのブラウザなどがある。
タスクのステータス
- ドーマント
タスクがカーネルに登録されているだけで、スケジューリング対象に入っていない状態 - レディ
実行可能だが他に優先度の高いタスクが実行中のため、プリエンプションされている状態 - ランニング
MPUを割り当てられ、実行中の状態 - ウェイト
入出力完了などのイベントやメモリ資源などの獲得を持ち合わせていて、それが発生しない限りレディになることができない状態
レディとランニングの間の遷移だけは、カーネルが自動的に行う。カーネルはレディのタスクのうち、最も優先度が高いものをランニングに遷移させる。
その他のステータス遷移は、システムコールによって行われる。