セマフォに関する記述のうち、適切なものはどれか。
ア | V操作は、待ち状態のプロセスがあれば、そのプロセスを一つ実行可能状態へ移す。 |
イ | あるセマフォに対してP操作を行うためには、それに先立ってV操作が実行されていなければならない。 |
ウ | 同一のセマフォに対して、V操作を連続して実行することはできない。 |
エ | 一つのプログラム内では、同時に使用できるセマフォの数は一つだけである。 |
答え ア
【解説】
セマフォを使用するときは共通領域にセマフォ変数を確保し、資源を同時に使用できる最大数を設定します。(排他制御なら1になります。)
共有資源を使いたいタスクは、セマフォ変数の値を1減らすP操作行います。
この時、セマフォ変数が0でなければ減算が行われ、資源を利用することが可能になります。
セマフォ変数の値が0のときは、資源が他のタスクに使われているので、待ち状態になります。(場合によってはエラーにすることなどもある。)
資源を使い終わったタスクはセマフォ変数の値を1増加させるV操作を行います。
【キーワード】
・セマフォ