令和7年度 秋期 午前 問16
ソフトウェア
排他制御に関する問題
一つの I²C バスに接続された二つのセンサーがある。それぞれのセンサー値を読み込む二つのタスクを排他的に制御したい。利用するリアルタイム OS の機能として,適切なものはどれか。
- アキュー
- イセマフォ
- ウマルチスレッド
- エメモリプール
答えと解説を見る
✓ これが正解イセマフォ
解説
同時に触らせないための機能はセマフォです。
この設問は、一つの I2C バスに接続された二つのセンサーの値を読み込む二つのタスクを、排他的に制御するために使うリアルタイム OS の機能を四つの選択肢から選ばせています。ですから見分けの軸は、共有した資源を同時に触らせないという排他制御の役割を担う仕組みはどれか、という一点だけです。守りたい資源は一本の I2C バスで、複数のセンサーが同じ線を分け合っており、同時に読みに行くと信号がぶつかって値が壊れます。そこで、利用可能な資源の個数を数える変数を用意し、取るときに減らし、返すときに増やす仕組みが必要になります。数が 0 になると次のタスクは待たされ、同時に触るのは一つだけであることが保たれます。この仕組みの名がセマフォであり、設問の条件にちょうど噛み合います。したがって答えはセマフォです。
ほかの選択肢はなぜ違うのか
- アキュー:キューはタスク間でデータを渡す仕組みで、メッセージの受け渡しに使われます。並び順は保てるものの、それは同時に触ることを止める機能ではありません。排他制御を目的とした仕組みとは役割が違います。
- ウマルチスレッド:マルチスレッドは処理を並行に走らせるための仕組みで、むしろ排他制御が必要になる側の道具立てに当たります。同時に触ることをどう防ぐかを与える仕組みではないため、設問が問う排他制御の答えにはなりません。
- エメモリプール:メモリプールは固定長のメモリをあらかじめ切り出して貸し借りする仕組みで、断片化を避けたい場面で用います。用途は記憶の確保のしかたであり、共有する物理資源を同時に触らせないという役割とは無関係です。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
出典:令和7年度 秋期 応用情報技術者試験 午前 問16
同じ用語が出る問題
- 平成30年度 秋期 午前 問30:排他制御に関する問題(排他制御)
- 平成30年度 春期 午前 問18:セマフォを用いる目的(排他制御)
- 平成29年度 春期 午前 問29:デッドロックに関する問題(排他制御)
- 平成26年度 秋期 午前 問16:デッドロックに関する問題(排他制御)
- 平成25年度 春期 午前 問31:排他制御に関する問題(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)