首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >持有和等待与循环等待有什么不同?

持有和等待与循环等待有什么不同?
EN

Stack Overflow用户
提问于 2016-12-29 16:09:43
回答 2查看 19.4K关注 0票数 7

我不能弄清楚两个死锁的条件有什么不同。保持和等待看起来像是循环等待的一个子集。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 10
EN

Stack Overflow用户

发布于 2016-12-29 16:57:24

对于Hold和Wait,必须存在一个进程,该进程持有已分配给它的资源,同时等待当前由其他进程持有的其他资源。然而,对于循环等待的发生,系统中的进程形成循环列表或链,其中列表中的每个进程都在等待列表中的下一个进程持有的资源。

需要注意的是:循环等待必须形成链(循环列表),而Hold和Wait并非如此。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41375573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档