デッドロック - 2 つ以上の競合するアクションがそれぞれ他のアクションの終了を待っているため、どちらも終了しない状況。
無期限延期 - 他のプロセスがシステムの注意を引く間、プロセスのスケジューリングを無期限に遅らせること
この 2 つの用語は非常によく似ています。どうすればそれらを区別できますか?
デッドロック - 2 つ以上の競合するアクションがそれぞれ他のアクションの終了を待っているため、どちらも終了しない状況。
無期限延期 - 他のプロセスがシステムの注意を引く間、プロセスのスケジューリングを無期限に遅らせること
この 2 つの用語は非常によく似ています。どうすればそれらを区別できますか?
リソースの割り当てとプロセスのスケジューリングの決定を行う間、プロセスを待機させ続けるシステムでは、他のプロセスがシステムの注意を引く間、プロセスのスケジューリングを無期限に遅らせることができます。この状況は、無期限の延期、無期限のブロック、または飢餓とさまざまに呼ばれ、デッドロックと同じくらい壊滅的なものになる可能性があります
から:
http://wps.prenhall.com/esm_deitel_os_3/17/4402/1127072.cw/index.html
Haveender のデッドロック条件 (1968) - 7.2.1
• リスト内の別のプロセスが所有するリソースを必要とするプロセスの循環リストがあります。
• リソースは共有できません。
• 所有者のみがリソースを解放できます
• プロセスは別のリソースを要求している間、リソースを保持できます
から:
http://www.cs.auckland.ac.nz/~robert-s/415.340/lectures_1997/lecture35.pdf
そのため、無期限に延期すると、1 つのプロセスが影響を受け、他のプロセスは正常に続行されます。これは、不適切なスケジューリングやその他の理由が原因である可能性があります。無期限に延期されたプロセスは、同じリソースの後の他のすべてのプロセスよりも優先度が常に低くなります。後で、リソースを取得するのに十分な優先度になる場合があります。
デッドロックは、プロセスが別のプロセスによって保持されているリソースを要求しているときに発生します。そのプロセス (A) は、要求している別のリソースを取得するまでリソースを解放しません。別のプロセス (B) によって保持されているリソースは、別のプロセス (C) によって保持されているリソースを受け取るまで解放されません。 (A)によって保持されているリソースを取得するまで、それを解放しません。そのシナリオには、A、B、C の 3 つのプロセスが含まれていました。ただし、2 つ以上のプロセスの「循環」が含まれる可能性があります。
2 つのプロセスがデッドロック状態にある場合、これらのプロセスは有用な作業を行うことができません。これらのプロセスは相互に依存しており、どちらも譲歩しないためです。
プロセスが無期限に延期された場合、少なくとも理論的には、そのようなプロセスが継続され、将来のある時点で何らかの有用な作業が行われる可能性があります。他のプロセスがリソースの乱用を停止するか、単に終了した場合、またはプロセスの優先度を無期限に延期した場合に発生する可能性があります。