首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不推荐生成互斥实现?

为什么不推荐生成互斥实现?
EN

Stack Overflow用户
提问于 2013-09-05 22:12:49
回答 1查看 583关注 0票数 3

在实现互斥对象时,有几种体系结构选择,例如,

  1. 纺丝互斥物(自旋锁)
  2. 休眠互斥(等待时保持FIFO睡眠队列)
  3. 生成互斥(在等待时调用调度程序以运行另一个进程)

为什么屈服互斥最不可取?使用它会带来多严重的后果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-06 00:36:18

休眠互斥具有更多的公平性。屈服的互斥物会导致饥饿。

屈服模型的问题是,一个过程可能会被要求一次又一次地屈服,而其他过程则会挖掘互斥(参见驳船),或者只需要等待更短的时间。

取决于新进程是如何添加到队列中的,甚至可能发生这样的情况:每当某个进程到达它的回合时,它就会被迫屈服,因为互斥对象已经被占用,从而使进程饥饿。

FIFO模型确保在先到先得的基础上为等待过程服务。在操作系统中更难实现,但更公平。

模型会变得更复杂。例如,操作系统也可能有进程的优先级,并且优先级会随着时间的推移而改变。这样,队列系统的实现就会变得更加棘手。

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

https://stackoverflow.com/questions/18646790

复制
相关文章

相似问题

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