複数のプロセスが共有資源を操作するプログラムの部分(危険区域、クリティカルセクション)に対する相互排除の説明として、適切なものはどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 Aある時点で危険区域を実行できるプロセスを高々1つにする
解説
正解は「ある時点で危険区域を実行できるプロセスを高々1つにする」です。共有変数の読み書きを含む危険区域を複数のプロセスが同時に実行すると、実行の順序によって結果が変わる競合状態が起こります。相互排除は、あるプロセスが危険区域にいる間、他のプロセスが入れないようにする仕組みで、セマフォやミューテックスなどで実現します。「すべてのプロセスが同時に危険区域を実行できるようにする」は、まさに競合状態を招きます。「危険区域を実行するプロセスの優先度を最低にする」は相互排除と無関係です。「危険区域の実行中は、割込みによる切替えを常に許可する」と、途中で他のプロセスが同じ危険区域に入るおそれがあります。
- #相互排除
- #危険区域
この調子でOS・ネットワーク・データベースを続けて解く
▶ この科目の連続演習へ進む(10問)