平成31年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8
テクノロジ/ソフトウェアセマフォの基本操作である P 操作,V 操作に関する記述のうち,適切なものはどれか。ここで,セマフォ変数は事象の数を表すものとし,初期値は 1 とする。
出典:平成31年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8
- アP 操作と V 操作は交互に行わなければならない。
- イP 操作は資源のロック,V 操作は資源のアンロックを実現するのに使用できる。
- ウP 操作は事象の発生通知,V 操作は事象の待合せに用いられる。
- エP 操作はセマフォ変数の値を増加させ,V 操作は減少させる。
正解:イ
解説
セマフォは,複数のタスクが共有資源を排他的に利用するために用いられる同期機構です。P 操作はセマフォ変数の値を検査して 1 減らす操作(資源の獲得・ロック)であり,値が 0 の場合はタスクを待機させます。V 操作はセマフォ変数の値を 1 増やす操作(資源の解放・アンロック)であり,待機中のタスクがあれば実行可能にします。初期値が 1 のセマフォは,1 個の資源に対する排他制御(ロック・アンロック)を実現するのに使用できます。
選択肢ごとの解説
- ア誤り。P 操作と V 操作は,資源の獲得と解放という対になる操作ですが,必ずしも一つのタスクの中で交互に厳密なペアとして実行しなければならないわけではなく,別々のタスクがそれぞれ P 操作,V 操作を行う使い方も一般的です。
- イ正しい。P 操作によってセマフォ変数を減らして資源を獲得(ロック)し,V 操作によってセマフォ変数を増やして資源を解放(アンロック)することができます。
- ウ誤り。事象の発生通知や待合せに用いるという説明は,イベントフラグやメッセージなどの同期・通知機構の説明に近く,資源の排他制御を目的とするセマフォの P 操作・V 操作の本来の役割とは異なります。
- エ誤り。P 操作はセマフォ変数の値を減少させ,V 操作は増加させる操作であり,この選択肢の増減の説明は P 操作と V 操作が逆になっています。