セマフォの目的
出典: 平成30年度 春期 応用情報技術者試験 午前 問18 (IPA)
セマフォを用いる目的として,適切なものはどれか。
- ア 共有資源を管理する。
- イ スタックを容易に実現する。
- ウ スラッシングの発生を回避する。
- エ セグメンテーションを実現する。
正解と解説を見る
正解: ア
- ア: セマフォは、共有資源を使うプロセスの排他制御や同期をとるためのもので、共有資源を管理する目的に使うので正しい答えです。
- イ: スタックは配列やリストで実現するデータ構造で、セマフォの目的ではありません。
- ウ: スラッシングは、ページングが多発して処理が進まなくなる現象です。多重度を下げたり主記憶を増やしたりして回避します。
- エ: セグメンテーションは、プログラムを論理的な単位 (セグメント) に分けて管理する仮想記憶の方式です。
ポイント
- セマフォ は、複数のプロセス (タスク) が 共有資源を同時に使って矛盾が起きないように するための仕組みです。
- 資源の空き数を表すカウンタを持ち、P 操作 (獲得) で減らし、V 操作 (解放) で増やします。0 のときは P 操作をしたプロセスが待たされます。