平成30年度 春期 午前Ⅱ 問8
オペレーティングシステム
セマフォに関する記述
セマフォに関する記述のうち,適切なものはどれか。
- アV 操作は,待ち状態のプロセスがあれば,そのプロセスを一つ実行可能状態へ移す。
- イあるセマフォに対して P 操作を行うためには,それに先立って V 操作が実行されていなければならない。
- ウ同一のセマフォに対して,V 操作を連続して実行することはできない。
- エ一つのプログラム内では,同時に使用できるセマフォの数は一つだけである。
答えと解説を見る
✓ これが正解アV 操作は,待ち状態のプロセスがあれば,そのプロセスを一つ実行可能状態へ移す。
解説
V 操作は、待ちのプロセスがあれば一つを実行可能状態へ移します。
セマフォは、資源の空きの数などを表す整数の変数と、それを操作する P 操作・V 操作で、排他制御や同期を行う仕組みです。P 操作は資源を一つ確保する操作で、空きが無ければそのプロセスを待ち状態にします。V 操作は資源を一つ返す操作で、その資源を待っているプロセスがあれば、そのうちの一つを待ち状態から実行可能状態へ移します。つまり V 操作は、資源の返却と、待っている相手を起こすことを兼ねています。見分ける軸は、P 操作と V 操作の順序や回数、セマフォの個数に制限があるかどうかです。P で取って V で返す、返すときに待ちを一つ起こす、という動きを押さえておけば判断できます。
ほかの選択肢はなぜ違うのか
- イあるセマフォに対して P 操作を行うため…:セマフォの初期値を資源の数にしておけば、V 操作を一度も行わなくても P 操作を実行できます。初期値の分だけ資源を確保できるので、P 操作の前に必ず V 操作が必要だという制約はありません。
- ウ同一のセマフォに対して,V 操作を連続し…:同じセマフォに対して V 操作を続けて実行することはできます。資源を一つずつ返すたびに値が増えていくだけで、計数型のセマフォでは複数回続けて返すのは通常の使い方です。
- エ一つのプログラム内では,同時に使用できる…:一つのプログラムの中で、守りたい資源ごとに別々のセマフォを用意して同時に使うことができます。セマフォの数が一つに限られるという制約は無く、複数の資源を扱う場面では複数のセマフォを使い分けます。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問6:デッドロックに関する問題(排他制御)
- 令和5年度 秋期 午前Ⅱ 問8:スタベーションに関する記述(排他制御)
- 平成31年度 春期 午前Ⅱ 問8:セマフォに関する問題(排他制御)
- 平成31年度 春期 午前Ⅱ 問7:優先度逆転の原因となるもの(排他制御)
- 平成30年度 春期 午前Ⅱ 問10:優先度逆転に関する問題(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)