I-26-9. 入出力資源の管理方法、同時利用方法

実デバイスを操作することが多い組み込みシステムにおいては、とくに入出力装置に対する待ち時間を有効に利用することが求められる。ここでは、入出力待ち時間を有効活用するための方法と、各種の制約、特徴、実装上の留意点などについて述べる。

【学習の要点】

* 入出力ポートは同時に複数のタスクからの要求を受けた場合でも、ひとつのタスクのみの利用に限定される。実行中のタスクが終了するまで他のタスクは待たされる。

* 入出力ポートの利用を待ち情報を記憶したキューを入出力キューと呼ぶ。また、セマフォなどにより優先度の管理が行われる。

図I-26-9. 入出力キュー

【解説】

1) 入出力待ち時間の有効利用

* 入出力制御

- 入出力ポートは同時に複数のタスクからの要求を受けた場合でも、ひとつのタスクのみの利用に限定される。

- 実行中のタスクが終了するまで他のタスクは待たされるため、非効率な状況が発生しうる。入出力資源の効果的な利用が求められる。

- デバイスからの入出力イベントを待つ場合、事前にタスクを生成してイベント待ちにしておくことで、タスク生成のオーバヘッドを軽減することができることが多い。

- ハードディスクなど、入出力データやイベントには入出力要求のキューを作成して処理を待たせる方式が一般に利用される。

- 入力と出力とキューを分ける方式もあり、入出力の速度差をキューで解消することとなる。

- 入出力の速度差に伴う効率を考慮した設計を行うことが、リアルタイム性の要求に応えるために重要である。

* 割り込みの利用

- システムで最も優先度の高い割り込みを利用して緊急度の高い処理を実行させる場合もある。

* 入出力資源の同時使用方法

- 同時並行処理できるデバイス単位にリエントラント性を保証することにより実現できる。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。