×
科目A|ソフトウェア
これらすべてが揃ったときにデッドロックが発生します。これを防ぐためには、プロセスが資源を要求する順番をあらかじめルール化して循環待ちを物理的に防いだり、処理を開始する前に必要な資源をすべて一括して要求・確保させる手法が取られます。また、デッドロックの発生を未然に防ぐのではなく許容しつつ、OSが定期的にシステムの状態を監視し、発生を検知した時点で一部のプロセスを強制終了(キル)させたり、トランザクションをロールバックして回復を図る「デッドロックの検出と回復」というアプローチもあります。現実のシステム設計では、パフォーマンスとのバランスを考慮してこれらの手法が組み合わされます。

試験でのポイント

応用情報技術者試験やITパスポート、さらには応用情報技術者試験などの情報処理技術者試験において、デッドロックの発生原理やその回避方法は非常によく出題される頻出テーマです。特に「複数のプロセスが互いに相手の資源の解放を待っている状態」という定義そのものを問う問題が多く出題されます。