免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1430 | 回复: 1

[Linux] 信号量的同步与互斥:同步中如何保证有序访问资源? [复制链接]

论坛徽章:
0
发表于 2014-08-30 16:37 |显示全部楼层
本帖最后由 little_tony 于 2014-08-30 16:49 编辑

刚开始的时候,对同步与互斥的概念有点模糊,分不清楚,网上有人说:
互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。

同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资。

大家都说信号量是实现线程同步的一个机制。可是我有一个疑问:当使用信号量表示的资源不足时,所有试图获得资源的线程会阻塞,但是当信号量又大于0,资源有了,但是唤.醒的线程是是无序的。所以,现在我的疑问是:既然唤.醒的线程是无序的,那信号量又是如何保证同步的资源有序访问?

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
发表于 2014-08-30 23:50 |显示全部楼层
回复 1# little_tony
你说的是用户空间还是内核空间的信号量,如果是内核空间的信号量,是有序的,这个顺序是通过排队自旋锁来实现的
用户空间的信号量没看过源码,你找个源码自己看一下就行了


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP