IPA過去問ドリル

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

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

セマフォの基本操作である P 操作,V 操作に関する記述のうち,適切なものはどれか。ここで,セマフォ変数は事象の数を表すものとし,初期値は 1 とする。

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

正解:イ

解説

セマフォは,複数のタスクが共有資源を排他的に利用するために用いられる同期機構です。P 操作はセマフォ変数の値を検査して 1 減らす操作(資源の獲得・ロック)であり,値が 0 の場合はタスクを待機させます。V 操作はセマフォ変数の値を 1 増やす操作(資源の解放・アンロック)であり,待機中のタスクがあれば実行可能にします。初期値が 1 のセマフォは,1 個の資源に対する排他制御(ロック・アンロック)を実現するのに使用できます。

選択肢ごとの解説

  • 誤り。P 操作と V 操作は,資源の獲得と解放という対になる操作ですが,必ずしも一つのタスクの中で交互に厳密なペアとして実行しなければならないわけではなく,別々のタスクがそれぞれ P 操作,V 操作を行う使い方も一般的です。
  • 正しい。P 操作によってセマフォ変数を減らして資源を獲得(ロック)し,V 操作によってセマフォ変数を増やして資源を解放(アンロック)することができます。
  • 誤り。事象の発生通知や待合せに用いるという説明は,イベントフラグやメッセージなどの同期・通知機構の説明に近く,資源の排他制御を目的とするセマフォの P 操作・V 操作の本来の役割とは異なります。
  • 誤り。P 操作はセマフォ変数の値を減少させ,V 操作は増加させる操作であり,この選択肢の増減の説明は P 操作と V 操作が逆になっています。
エンベデッドシステムスペシャリストの過去問を演習モードで解く