平成17年春期試験問題 午前問24
問24解説へ
セマフォに関する記述のうち,適切なものはどれか。
- V操作は,待ち状態のプロセスがあれば,そのプロセスを一つ実行可能状態へ移す。
- あるセマフォに対してP操作を行うためには,それに先立ってV操作が実行されていなければならない。
- 同一のセマフォに対して,V操作を連続して実行することはできない。
- 一つのプログラム内では,同時に使用できるセマフォの数は一つだけである。
正解 ア問題へ
広告
解説
セマフォ(Semaphore)は、複数のタスクが並行動作している状況で排他処理を制御するための機構で、セマフォ変数SとP操作、V操作、及びタスクの待ち行列を保持するキューで構成されます。
- セマフォ変数
- ある時点でクリティカルセクションに進入可能なタスク数、又は使用可能な資源数を保持する整数型の変数
- P操作
- セマフォ変数が0でなければセマフォ変数の値を1だけ減らし、待ち行列の先頭のタスクをクリティカルセクションに入れる(実行可能状態にする)。0であればP操作を実行したタスクを待ち行列の最後尾に加える。
- V操作
- セマフォ変数の値を1だけ増やす。待ち行列にタスクが存在すればセマフォ変数の値を1だけ減らし、先頭のタスクをクリティカルセクションに入れる。
- 正しい。
- セマフォ変数が0の場合でもP操作を行うことが可能であるため、前もってV操作を行う必要はありません。
- セマフォ変数の上限が2以上の場合であればV操作が連続して行われることもあります。
- 複数のセマフォを同時に使用することができます。
広告