我不能弄清楚两个死锁的条件有什么不同。保持和等待看起来像是循环等待的一个子集。
发布于 2016-12-29 16:23:58
Hold and Wait和Circular是发生死锁时满足的条件。
这意味着如果不满足这两个条件,您将不会陷入死锁。
hold和wait条件表明进程正在占用其他进程可能(也可能不)需要的资源。这里的关键点是,进程持有这些资源,并且直到它获得对所请求的资源(由其他进程持有)的访问权限时才会释放它们。
循环等待条件表明存在一个进程链,其中每个进程都在等待另一个进程持有的资源。在这种情况下,这并不一定意味着进程持有另一个进程正在请求的资源,而是所有进程都在等待由另一个进程持有的资源。
有关更多信息,请参阅以下文章:
http://www.cs.yale.edu/homes/aspnes/pinewiki/Deadlock.html http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/dl-cond.html
发布于 2016-12-29 16:57:24
对于Hold和Wait,必须存在一个进程,该进程持有已分配给它的资源,同时等待当前由其他进程持有的其他资源。然而,对于循环等待的发生,系统中的进程形成循环列表或链,其中列表中的每个进程都在等待列表中的下一个进程持有的资源。
需要注意的是:循环等待必须形成链(循环列表),而Hold和Wait并非如此。
参考:http://www.personal.kent.edu/~rmuhamma/OpSystems/Myos/deadlockCondition.htm
https://stackoverflow.com/questions/41375573
复制相似问题