令和4年度 春期 午前Ⅰ 問題【共通】 問6

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

解答・解説

正解: イ. セマフォ

問題文では、「二つのタスクで排他的に制御したい」という要件があります。複数タスク間で一つのI2Cバスのような共有資源を同時に利用するとデータの競合や破壊が起きるため、排他制御が必要となります。

リアルタイムOSにおいて、共有資源の排他制御やタスク間の同期に用いられる代表的な機能がセマフォです。したがって、「イ」が適切です。

各選択肢の解説

  • ア:キュー タスク間でデータを送受信するための待ち行列(FIFO)のことであり、排他制御を主な目的とするものではないため不適切です。

  • イ:セマフォ 正解です。共有資源へのアクセスを管理し、排他制御を実現するための機能です。

  • ウ:マルチスレッド 一つのプロセス内で複数の処理の流れ(スレッド)を並行して実行する仕組みであり、排他制御の機能そのものではないため不適切です。

  • エ:ラウンドロビン 複数のタスクに対して、CPUの使用権を一定時間ごとに順番に割り当てるスケジューリング方式であり、排他制御の機能ではないため不適切です。

Spineチーム