CPU スケジューリングの方式と、デッドロックの発生条件は AP頻出。計算問題と概念問題の両方が出ます。
補足すると、スケジューリング は CPU をプロセスに割り当てる順序を決める方式ですね。
FCFS・SJF・優先度方式・ラウンドロビン が AP頻出です。
それぞれ何が違うの?
FCFS は到着順で、シンプルだけれど平均待ち時間が悪化しやすいのよ。
SJF は最短処理時間優先で、平均待ち最小だけれど処理時間の予測が必要ね。
優先度方式は重要なプロセスを先に処理するの。
ラウンドロビンは時分割で公平、ということね。
うぅ〜ん…デッドロック って、止まっちゃうやつ…ですよね?
そうですね。
複数のプロセスが互いに資源の解放を待ち合って、永久に進まなくなる状態です。
デッドロックの4条件 は相互排他・占有と待機・横取り不能・循環待ちで、すべてが揃うと発生します。
対策は4条件のいずれかを破ることね。
資源を一括で取得すれば占有と待機を破れるし、優先度順に取得すれば循環待ちを破れるわ。
確認クイズ
デッドロックが発生する4つの条件として正しい組合せはどれか。
- 相互排他・占有と待機・横取り可能・循環待ち
- 相互排他・占有と待機・横取り不能・循環待ち
- 資源共有・占有と待機・横取り不能・順序待ち
- 相互排他・解放と再取得・横取り不能・循環待ち
こたえを見る
正解: 2. 相互排他・占有と待機・横取り不能・循環待ち
デッドロックの4条件は『相互排他・占有と待機・横取り不能・循環待ち』。すべてが同時に成立すると発生します。横取り可能なら他のプロセスから取り上げられるため発生せず、選択肢1 は誤りです。