IPA過去問ドリル

平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8

テクノロジ/ソフトウェア

セマフォに関する記述のうち,適切なものはどれか。

出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8

正解:ア

解説

セマフォは,資源の数を表す整数のカウンタ変数(セマフォ変数)と,それを操作する P 操作(資源の獲得を試み,カウンタを減算する。カウンタが0以下なら待ち状態になる)及び V 操作(資源を解放し,カウンタを加算する)から構成される排他制御・同期の仕組みです。V 操作を実行した際に,その資源の解放を待って待ち状態になっていたプロセスが存在すれば,その中の一つを実行可能状態に移します。P 操作,V 操作はセマフォ変数の値に応じて何度でも連続して実行でき,一つのプログラム内で複数個のセマフォを独立に用意して,それぞれ異なる資源の排他制御・同期に使うこともできます。

選択肢ごとの解説

  • 正しい。V 操作は,セマフォ変数を加算した上で,そのセマフォに対する P 操作の完了を待って待ち状態になっているプロセスがあれば,そのうちの一つを実行可能状態へ移します。
  • 誤り。P 操作を行うために,あらかじめ V 操作が実行されている必要はありません。セマフォ変数の初期値(本問では1)が0より大きければ,最初から P 操作を実行して資源を獲得できます。
  • 誤り。同一のセマフォに対して V 操作を連続して実行すること自体は可能です(そのたびにセマフォ変数が加算されます)。連続実行ができないという制約はありません。
  • 誤り。一つのプログラム内で同時に使用できるセマフォの数に「一つだけ」という制限はありません。異なる資源や排他区間ごとに複数のセマフォを独立に用意して使うことができます。
エンベデッドシステムスペシャリストの過去問を演習モードで解く