IPA過去問ドリル

平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7

テクノロジ/ソフトウェア

リアルタイムシステムにおいて,アプリケーションタスクの要求によって入出力を行うデバイスドライバのタスク部が,要求された処理が完了したときに行う通知処理はどれか。

出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7

正解:ア

解説

リアルタイムシステムでは,アプリケーションタスクが入出力を要求すると,デバイスドライバのタスク部が実際のハードウェア制御を行い,処理が完了した時点で要求元のタスクにその完了を知らせる必要があります。この通知には,タスク間の同期・通知手段であるイベントフラグ,セマフォ,メールボックスなどのOSが提供する機構が用いられますが,本問のように「入出力要求元のタスクに」直接完了を知らせる場合には,一般にイベントフラグをセット(あるいはセマフォをシグナル)して要求元タスクを起床させる方法が使われます。選択肢の中では,イベントフラグを使って入出力要求元のタスクに直接通知する方法が,要求元への通知処理として最も適切です。

選択肢ごとの解説

  • 正しい。イベントフラグを使うことによって,デバイスドライバのタスク部は入出力完了を,OSを介さず直接,入出力要求元のタスクに通知することができます。
  • 誤り。セマフォを使ってOSに入出力完了を通知するという表現は,通知の宛先が入出力要求元のタスクではなくOSになっており,要求元タスクへの通知処理としては適切ではありません。
  • 誤り。ハードウェアに入出力完了を通知するという処理は,向きが逆であり,本問が問う「要求元のタスクへの通知」には該当しません。
  • 誤り。メールボックスを介してOSに入出力完了を通知するという表現も,通知の宛先が入出力要求元のタスクではなくOSになっており,適切ではありません。
エンベデッドシステムスペシャリストの過去問を演習モードで解く