令和4年度 春期 午前 問17
ソフトウェア
排他的に関する問題
一つの I²C バスに接続された二つのセンサがある。それぞれのセンサ値を読み込む二つのタスクで排他的に制御したい。利用するリアルタイム OS の機能として,適切なものはどれか。
- アキュー
- イセマフォ
- ウマルチスレッド
- エラウンドロビン
答えと解説を見る
✓ これが正解イセマフォ
解説
一本の資源を一つずつ通す旗を使います。
設問は、一つのバスにつながった二つのセンサの値を読み込む二つのタスクを排他的に制御したいときに使う、リアルタイムオペレーティングシステムの機能を選ばせています。状況を単純にすると、共有されている一本の通信路を二つのタスクが取り合うので、同時に触れると通信が壊れてしまうという場面です。ですから見分けの軸は、その機能が一度に一つだけ通すという仕掛けを備えているか、という一点だけです。正解はセマフォで、これは資源を使える数を数える旗のようなものです。使う前に取得の操作を行い、旗が空いていなければ空くまで待たされ、使い終わったら解放の操作で旗を戻します。使える数を一つに絞っておけば、一方が読んでいる間はもう一方が待たされるので、読み込みが重なりません。なお解放の操作を書き忘れると、待っている側が永久に動けなくなります。
ほかの選択肢はなぜ違うのか
- アキュー:キューという機能を挙げています。これはタスクの間でデータを順番にためて受け渡す仕掛けで、順序は付きますが、一本の通信路を片方が占有することまでは保証しません。
- ウマルチスレッド:マルチスレッドという機能を挙げています。一つのプログラムの中に複数の流れを作る仕組みであり、取り合いを解く働きではなく、むしろ重なりを増やす側にあたります。
- エラウンドロビン:ラウンドロビンという方式を挙げています。処理装置の時間を順番に割り当てる決め方であって、共有されている資源を一つずつ通すための仕掛けではありません。
出典:令和4年度 春期 応用情報技術者試験 午前 問17
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)