平成28年度 春期 午前Ⅱ 問7
オペレーティングシステム
デバイスドライバに関する問題
リアルタイムシステムにおいて,アプリケーションタスクの要求によって入出力を行うデバイスドライバのタスク部が,要求された処理が完了したときに行う通知処理はどれか。
- アイベントフラグを使って入出力要求元のタスクに入出力完了を通知する。
- イセマフォを使ってOSに入出力完了を通知する。
- ウハードウェアに入出力完了を通知する。
- エメールボックスを介してOSに入出力完了を通知する。
答えと解説を見る
✓ これが正解アイベントフラグを使って入出力要求元のタスクに入出力完了を通知する。
解説
入出力の完了は、イベントフラグで要求元のタスクへ知らせます。
アプリケーションのタスクがデバイスドライバに入出力を頼むと、要求元のタスクは処理の完了を待ちます。見分ける軸は、完了を誰に知らせるかです。完了を待っているのは要求元のタスクなので、デバイスドライバのタスク部はそのタスクに通知しなければなりません。イベントフラグは、ある出来事が起きたことをタスクへ知らせる、リアルタイムOSのタスク間の同期の仕組みです。タスク部が入出力の完了でフラグを立てると、待っていた要求元のタスクが待ち状態から抜けて処理を続けます。完了を待っている相手に直接知らせるもの、と考えると選べます。
ほかの選択肢はなぜ違うのか
- イセマフォを使ってOSに入出力完了を通知す…:セマフォは、タスク間で資源の利用を調整したり同期を取ったりする仕組みですが、通知の相手をOSとしている点が合いません。完了を待っているのは要求元のタスクで、OSへ知らせても要求元は動き出せません。
- ウハードウェアに入出力完了を通知する。:ハードウェアは入出力を実際に行う側で、完了を割込みなどで知らせてくる立場にあります。デバイスドライバのタスク部が完了をハードウェアへ知らせても、要求元のタスクには何も伝わりません。
- エメールボックスを介してOSに入出力完了を…:メールボックスはタスク間でメッセージを受け渡す仕組みですが、ここでも通知の相手がOSになっています。入出力の完了を待っているのは要求元のタスクなので、OSに知らせるという記述は合いません。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)