スケジューリングとデッドロック

FCFS/SJF/優先度/RR の比較と平均待ち時間計算、デッドロックの4条件と回避策を整理。

CPU スケジューリングの方式と、デッドロックの発生条件は AP頻出。計算問題と概念問題の両方が出ます。

鳴海 理央(普段) 鳴海 理央

補足すると、スケジューリング は CPU をプロセスに割り当てる順序を決める方式ですね。
FCFS・SJF・優先度方式・ラウンドロビン が AP頻出です。

砂原 ニコ(普段) 砂原 ニコ

それぞれ何が違うの?

緒方 ナオミ 先生(笑顔) 緒方 ナオミ 先生

FCFS は到着順で、シンプルだけれど平均待ち時間が悪化しやすいのよ。
SJF は最短処理時間優先で、平均待ち最小だけれど処理時間の予測が必要ね。
優先度方式は重要なプロセスを先に処理するの。
ラウンドロビンは時分割で公平、ということね。

藤咲 まりあ(普段) 藤咲 まりあ

うぅ〜ん…デッドロック って、止まっちゃうやつ…ですよね?

鳴海 理央(普段) 鳴海 理央

そうですね。
複数のプロセスが互いに資源の解放を待ち合って、永久に進まなくなる状態です。
デッドロックの4条件 は相互排他・占有と待機・横取り不能・循環待ちで、すべてが揃うと発生します。

緒方 ナオミ 先生(普段) 緒方 ナオミ 先生

対策は4条件のいずれかを破ることね。
資源を一括で取得すれば占有と待機を破れるし、優先度順に取得すれば循環待ちを破れるわ。

確認クイズ

デッドロックが発生する4つの条件として正しい組合せはどれか。

  1. 相互排他・占有と待機・横取り可能・循環待ち
  2. 相互排他・占有と待機・横取り不能・循環待ち
  3. 資源共有・占有と待機・横取り不能・順序待ち
  4. 相互排他・解放と再取得・横取り不能・循環待ち
こたえを見る

正解: 2. 相互排他・占有と待機・横取り不能・循環待ち

デッドロックの4条件は『相互排他・占有と待機・横取り不能・循環待ち』。すべてが同時に成立すると発生します。横取り可能なら他のプロセスから取り上げられるため発生せず、選択肢1 は誤りです。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。