持有和等待不同于循环等待?

问题描述:

我无法确定死锁的两个条件是如何彼此不同的。等待和等待看起来像循环等待的子集。持有和等待不同于循环等待?

+0

在我看来循环等待是保留的子集和等待! –

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

这意味着,如果这两个条件都不满足,你会不会死锁。

保持并等待该进程持有到一个资源/秒,其可以(或者可以不)可通过其它处理所需的条件的状态。这里关键的一点是,这个过程持有这些资源,并不会释放它们,直到它获得所请求的资源(被其他进程占用)。

圆形等待条件指出存在的,其中每个进程等待其被保持通过另一资源的资源处理的链。在这种情况下,它并不一定意味着进程正在等待其他进程请求的资源,而是所有进程正在等待另一进程正在占用的资源。

请参阅以下文章了解更多信息:

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

对于保持和等待,必须存在被控股已经分配给它的资源,同时等待当前正额外资源的处理由其他进程持有。而循环等待发生系统中的进程形成一个循环列表或链,列表中的每个进程都等待列表中下一个进程拥有的资源。要注意的

点:链(循环列表)的形成是必须为循环等待这是不符合保持和等待的情况。

参考: http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/deadlockCondition.htm