デッドロックが発生する原因
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/24 18:59 UTC 版)
「デッドロック」の記事における「デッドロックが発生する原因」の解説
基本的にデッドロックは資源数が2以上の場合に発生する(たとえばクリティカルセクションが1つあれば資源は1つと数えられる。2つのクリティカルセクションがあれば資源数は2である)。資源数が1の場合、セマフォ等はバイナリセマフォとなり、振る舞いはミューテックスと同じになるのでデッドロックは発生しない(ライブロックする。これを回避する方法は数多く考案されており、たとえばCSMA/CDでは乱数を用いて回避する)。 資源数を1にすることは、デッドロックを回避する根本的な解決方法であるが、その場合プログラムの並列性は著しく損なわれるため、現代のコンピュータープログラミングにおいて現実的な手段とは言えない。資源を多数用い、なおかつデッドロックを回避する手段については以下に述べる。
※この「デッドロックが発生する原因」の解説は、「デッドロック」の解説の一部です。
「デッドロックが発生する原因」を含む「デッドロック」の記事については、「デッドロック」の概要を参照ください。
- デッドロックが発生する原因のページへのリンク