平成30年度春期 応用情報技術者試験 午前 問18
セマフォを用いる目的として,適切なものはどれか。
- ア 共有資源を管理する。
- イ スタックを容易に実現する。
- ウ スラッシングの発生を回避する。
- エ セグメンテーションを実現する。
解答・解説を見る
正解:ア
AI解説
セマフォは,複数のプロセスやタスクが共有資源に同時にアクセスして矛盾が生じないように排他制御・同期制御を行うための仕組みである。P操作(資源の獲得)とV操作(資源の解放)で資源の空き状態を管理する。「セマフォ=共有資源の排他制御」という対応を押さえておけば即答できる。 ア: 正解。セマフォはプロセス間の排他制御・同期に用いられ,共有資源(ファイル,プリンタ,共有メモリなど)へのアクセスを管理する。 イ: 誤り。スタックはLIFO(後入れ先出し)のデータ構造であり,配列やリストで実現する。セマフォとは無関係である。 ウ: 誤り。スラッシングはページング方式の仮想記憶でページ置換が多発し処理が進まなくなる現象で,回避策は主記憶の増設やマルチプログラミング度の抑制であり,セマフォの役割ではない。 エ: 誤り。セグメンテーションは仮想記憶においてプログラムを論理的な単位(セグメント)で管理する方式であり,セマフォとは無関係である。 💡 P操作で資源を確保しセマフォ値を減らし,V操作で解放して値を増やす。値が0のとき資源獲得しようとしたプロセスは待ち行列に入る,という動作まで覚えておくと午後問題にも対応できる。
出典:平成30年度 春期 応用情報技術者試験 午前 問18 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。