OSを整える
中級デッドロックを整える。
= 資源の取り合いで止まる様子と、避け方を1手ずつ見る
資源を逆順に取るとどうなるか
丸がプロセス、四角が資源です。資源から実線の矢印が出ていれば「持っている」、プロセスから点線の矢印が出ていれば「待っている」です。
銀行家のアルゴリズム
資源を渡してもよいか、「全員がいつかは最後まで終われる順序」があるかで決める方法です。表の数字は書き換えられます。
| プロセス | Allocation(いま持っている量) | Max(最大で必要な量) | Need(あと必要な量) | ||||||
|---|---|---|---|---|---|---|---|---|---|
| A | B | C | A | B | C | A | B | C | |
| P0 | |||||||||
| P1 | |||||||||
| P2 | |||||||||
| P3 | |||||||||
| P4 | |||||||||
1手ずつ。Work(いま自由に使える量)は最初 Available と同じで、Need が Work に収まるプロセスを先頭から探して終わらせます。
デッドロックの4条件
次の4つが全部そろったときに起きます。どれか1つでも崩せば起きません。
1. 相互排除
資源を同時に使えるのは1つのプロセスだけ。プリンタや排他ロックがその例です。
崩す方法:複数で同時に使えるようにする(読み取り専用にするなど)
2. 保持と待ち
資源を持ったまま、さらに別の資源を待つ。
崩す方法:必要な資源を最初に全部まとめて取る
3. 横取り不可
持っている資源を、他のプロセスが無理やり取り上げることはできない。
崩す方法:待たされたら持っている資源をいったん手放す(取り上げを許す)
4. 循環待ち
P1がP2の持つ資源を待ち、P2がP1の持つ資源を待つ、のように待ちが一周している。
崩す方法:資源に番号を付け、全員が番号の小さい順に取る
上の実験との対応。逆順に取る例では4つの条件が全部そろっています。順番をそろえると「循環待ち」が崩れるので、片方が待つだけで済み、止まりません。
対策の3種類。試験では「予防」(4条件のどれかを成り立たなくする)、「回避」(銀行家のアルゴリズムのように、安全な状態だけを渡す)、「検出と回復」(起きたら見つけて、プロセスを終わらせるなどで解く)に分けて問われます。
安全な状態。全プロセスを最後まで走らせられる順序(安全な順序)が1つでもある状態です。順序は1通りとは限らないので、探し方によって答えの並びが違っても正解になります。安全な順序がなければ「不安全」ですが、不安全だからといってすぐデッドロックになるとは限りません。デッドロックになる可能性があるという意味です。
実務での意味。データベースの更新で、2つの処理が同じ2行を逆の順に更新するとデッドロックになります。多くのデータベースは片方を自動で取り消して解きますが、更新の順番をそろえておくのが一番確実です。
この道具の銀行家のアルゴリズムは、資源の種類ごとに複数個ある一般形で、「いまの状態が安全か」を調べる部分を扱います。新しい要求を受け入れてよいかの判定は含みません。
参考: 情報処理推進機構(IPA)の情報処理技術者試験シラバスの用語(デッドロック、排他制御、資源割付グラフ)に合わせています。銀行家のアルゴリズムの例はOSの教科書に広く載っている5プロセス・3資源の例です。2026年11月時点。
このツールについて
よくある質問
Q. デッドロックとは何ですか?
A. 複数のプロセスが、互いに相手の持っている資源を待ち合って、どれも先へ進めなくなる状態です。2人が互いに相手の持つペンを待って、どちらも書けないような状態です。
Q. デッドロックが起きる4条件とは?
A. 相互排除(資源を同時に使えない)、保持と待ち(持ったまま次を待つ)、横取り不可(取り上げられない)、循環待ち(待ちが輪になる)の4つです。全部そろうと起きうるので、どれか1つを崩せば防げます。
Q. 資源を取る順番をそろえると、なぜ防げるのですか?
A. 全員が同じ順番で資源を取れば、待ちが輪になる(循環待ち)ことが起きないからです。このツールで、逆順の場合とそろえた場合を比べられます。
Q. 銀行家のアルゴリズムとは?
A. 資源を渡す前に、「渡しても全員がいつかは最後まで終われる順番(安全な順序)があるか」を確かめ、あるときだけ渡す方法です。このツールは、いまの状態が安全かどうかの判定までを行います。
Q. 基本情報技術者試験に出ますか?
A. デッドロックの意味と防ぎ方(資源を取る順番をそろえる など)が出ます。このツールで、図と手順で確かめられます。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。
続けて整える
この内容は、研修でも扱っています
totonoe.tech を運営する株式会社Koinobori は、法人向けの研修サービス「NOBORIBA®」も運営しています。 ここで手を動かした内容を、講師から教わる形の研修です。このページの道具は無料のまま、登録もいりません。