高度情報処理技術者試験・情報処理安全確保支援士試験 令和4年度 春期 午前I 問6
一つのI²Cバスに接続された二つのセンサがある。それぞれのセンサ値を読み込む二つのタスクで排他的に制御したい。利用するリアルタイムOSの機能として、適切なものはどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】イ
I²Cバスは、複数の機器が同じ信号線を共有するバスです。二つのタスクが同時にバスへアクセスすると、通信手順が混在して正しいセンサ値を読み取れないおそれがあります。そこで、共有資源を使用できるタスクを一つに制限するセマフォを用います。特に、初期値を1とするバイナリセマフォを使用し、タスクは通信前に獲得し、通信後に解放します。獲得できなかったタスクは待ち状態になるため、I²Cバスを排他的に利用できます。
アのキューは誤りです。キューは、タスク間でデータやメッセージを到着順に受け渡すための仕組みです。通信要求を一つの管理タスクへ渡す設計には利用できますが、選択肢の中で共有資源の排他制御を直接行う機能はセマフォです。
ウのマルチスレッドは誤りです。一つのプロセス内で複数の処理の流れを並行して実行する方式であり、それ自体は排他制御を保証しません。
エのラウンドロビンは誤りです。実行可能なタスクへ一定時間ずつCPUを順番に割り当てるスケジューリング方式であり、共有バスへの同時アクセスを防ぐ機能ではありません。
【ポイント】 セマフォは、共有資源を利用できる数をカウンタで管理します。 一つだけ利用を許すバイナリセマフォは、排他制御に利用できます。 キューはデータの受渡し、ラウンドロビンはCPUの割当てに関する機能です。
出典:令和4年度 春期 高度情報処理技術者試験・情報処理安全確保支援士試験 午前I 問6
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の30問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる