操作系统有信号量(semaphore)的概念……检查数值、修改变量值以及可能发生的休眠操作均为单一的、不可分割的原子操作完成。保证一个一个信号量操作开始,则在操作完成或阻塞之前,其他进程均不允许访问该信号量。这种原子性对于解决同步问题和避免竞争条件是绝对比较的。以上是摘自《现代操作系统》中的一段话,我的问题是:信号量的原子操作是如何实现的?
2 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
还记得小学上课的场景吗?当老师问:“这个问题谁能回答?”如果这时候所有知道答案的小盆友全都站起来回答,你一句我一句整个课堂会乱套了。于是老师定下规则发言之前必须举手,由老师从举手的同学中挑一个来回答。当一个同学答完后,老师再挑下一位同学来回答。这里的“举手”就是信号,通知给“老师”(操作系统),由“老师”(操作系统)统一进行调度。所以整套机制的关键就是制定规则和执行调度的“老师”(操作系统)。当你站在操作系统的角度,所有的线程都需要经过你来执行时,你会发现要实现信号量的实现并不难。
添加回答
举报
0/150
提交
取消