計数セマフォおよびバイナリセマフォのP操作・V操作の基本機能

セマフォ(Semaphore) は、並行プロセス/タスク間で共有資源の排他制御や同期を行うための整数型同期プリミティブです。 基本操作: - P操作(wait / acquire) : セマフォ変数が0より大きければ1デクリメントして処理を続行し、0であれば0より大きくなるまでタスクを待ち状態にします( 資源の獲得/ロック )。 - V操作(signal / release) : セマフォ変数を1インクリメントし、待っているタスクがあれば1つ起床させます( 資源の返却/アンロック )。 セマフォ変数の初期値を1とすることで、共有資源への同時アクセスを1つに制限するバイナリセマフォ(ミューテックス的排他制御)が実現できます。したがって、正解は イ です。 ア: 同一タスク内で交互に呼ぶ必要はなく、同期制御などでは複数回のP操作やV操作が独立して行われることがあります。 ウ: 事象の待合せに用いられるのはP操作であり、事象の発生通知に用いられるのはV操作です(説明が逆)。 エ: P操作がデクリメント(減算)、V操作がインクリメント(加算)です(説明が逆)。

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

出典平成31年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8
ア
P操作とV操作は交互に行わなければならない。
イ
P操作は資源のロック,V操作は資源のアンロックを実現するのに使用できる。
ウ
P操作は事象の発生通知,V操作は事象の待合せに用いられる。
エ
P操作はセマフォ変数をインクリメントし,V操作はセマフォ変数をデクリメントする。