I2Cバスにおける共有資源の排他制御とセマフォ

正解は「イ」です。 I2C(Inter-Integrated Circuit)バスは、シリアルデータ線(SDA)とシリアルクロック線(SCL)の2本の信号線を用いて複数のデバイスを接続・通信する共有シリアルバス規格です。複数のセンサタスクが同時にバスへアクセスすると信号衝突が発生するため、共有資源であるバスへの排他制御が不可欠です。 セマフォ(Semaphore)は、並行動作する複数のタスクやプロセス間で共有資源へのアクセスを同期・排他制御するための代表的なOSの同期プリミティブ(メカニズム)です。センサ値を読み込むタスクがバス獲得時にP操作(wait)、解放時にV操作(signal)を行うことで競合を防ぎます。 キュー(Queue):先入れ先出し(FIFO)方式のデータ構造またはバッファであり、排他制御の同期機構そのものではありません。 マルチスレッド:1つのプロセス内で複数の処理の流れを並行して実行する仕組みであり、共有資源への排他制御機能を提供するものではありません。 ラウンドロビン:実行可能状態の各タスクに一定時間(タイムスライス)ずつ均等にCPUを割り当てるスケジューリング方式です。

一つの I2C\text{I}^2\text{C} バスに接続された二つのセンサがある。それぞれのセンサ値を読み込む二つのタスクで排他的に制御したい。利用するリアルタイムOSの機能として,適切なものはどれか。

出典令和4年度 春期 高度情報処理技術者試験 午前Ⅰ
ア
キュー
イ
セマフォ
ウ
マルチスレッド
エ
ラウンドロビン