等待和等待与循环等待有何不同?

lif*_*ubh 7 operating-system deadlock

我无法弄清楚死锁的两个条件是如何彼此不同的。保持和等待看起来像是循环等待的一个子集。

New*_*per 10

保持等待和循环等待是发生死锁时满足的条件。

这意味着如果不满足这两个条件,您将不会陷入僵局。

保持和等待条件表明进程正在占用其他进程可能(或可能不需要)的资源。这里的关键点是该进程持有这些资源,并且在它访问请求的资源(这些资源由其他进程持有)之前不会释放它们。

循环等待条件表明存在一个进程链,其中每个进程都在等待另一个进程持有的资源。在这种情况下,并不一定意味着该进程正在占用另一个正在请求的资源,而是所有进程都在等待另一个进程占用的资源。

有关更多信息,请参阅这些文章:

http://www.cs.yale.edu/homes/aspnes/pinewiki/Deadlock.html http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/dl-cond.html

  • 您能否举例说明“循环等待”条件为真,但“保持并等待”条件为假? (3认同)