为了账号安全,请及时绑定邮箱和手机立即绑定

信号量的原子操作是如何实现的?

信号量的原子操作是如何实现的?

POPMUISE 2019-04-09 20:23:24
操作系统有信号量(semaphore)的概念……检查数值、修改变量值以及可能发生的休眠操作均为单一的、不可分割的原子操作完成。保证一个一个信号量操作开始,则在操作完成或阻塞之前,其他进程均不允许访问该信号量。这种原子性对于解决同步问题和避免竞争条件是绝对比较的。以上是摘自《现代操作系统》中的一段话,我的问题是:信号量的原子操作是如何实现的?
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

还记得小学上课的场景吗?
当老师问:“这个问题谁能回答?”
如果这时候所有知道答案的小盆友全都站起来回答,你一句我一句整个课堂会乱套了。
于是老师定下规则发言之前必须举手,由老师从举手的同学中挑一个来回答。当一个同学答完后,老师再挑下一位同学来回答。
这里的“举手”就是信号,通知给“老师”(操作系统),由“老师”(操作系统)统一进行调度。
所以整套机制的关键就是制定规则和执行调度的“老师”(操作系统)。
当你站在操作系统的角度,所有的线程都需要经过你来执行时,你会发现要实现信号量的实现并不难。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 398 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信