信号量的实现机制

小魔菇 2010-01-07 10:32:15
自旋锁是锁总线实现的
那么信号量是怎么实现的? 也是锁总线吗?
那么为什么信号量在多核的情况下 不能实现同步功能

请大牛指点一下
...全文
697 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小魔菇 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 cdbdyx 的回复:]
自旋锁是锁总线实现的
那么信号量是怎么实现的? 也是锁总线吗?
也是锁总线
lock;

那么为什么信号量在多核的情况下 不能实现同步功能

谁说的?

都能实现同步,只是应用场合不同,spin_lock用在不能睡眠(中断)或获得资源较快的情况下,信号量用在较长时间才能获得资源的情况下,因为信号量会引起睡眠,所以上下文切换的时间小于这个时间,那么用它就算合理

[/Quote]
恩 你说的是对的
充电宝111 2010-01-08
  • 打赏
  • 举报
回复
自旋锁是锁总线实现的
那么信号量是怎么实现的? 也是锁总线吗?
也是锁总线
lock;

那么为什么信号量在多核的情况下 不能实现同步功能

谁说的?

都能实现同步,只是应用场合不同,spin_lock用在不能睡眠(中断)或获得资源较快的情况下,信号量用在较长时间才能获得资源的情况下,因为信号量会引起睡眠,所以上下文切换的时间小于这个时间,那么用它就算合理
小魔菇 2010-01-07
  • 打赏
  • 举报
回复
明白了 谢谢各位大牛的解答

顺便问个小问题
linux是从那个内核版本开始支持SMP的?
Wenxy1 2010-01-07
  • 打赏
  • 举报
回复

信号量在多核下能实现同步吗? 可以
信号量不是以自旋锁为前提的吗?不是,自旋锁只在SMP有效。
自旋锁都能实现多核同步, 信号量能不能实现多核同步?应当可以
快乐田伯光 2010-01-07
  • 打赏
  • 举报
回复
我所理解的,
信号量跟自旋锁在多核下都可以实现同步。
但自旋锁一般用于多线程环境,也就是说,在多核的情况下,同一个进程的线程分配到不同的核上,一直在运行,自旋的意思就是自己一直检测直到条件满足就继续运行,没有一个挂起切换的状态。
而信号量的话必需经常挂起就绪运行这个状态。

所以同步都是可以实现,只是在运行的多核机器的多线程程序自旋锁会更快。

[Quote=引用 2 楼 eclipse_2 的回复:]
想请教的是
信号量在多核下能实现同步吗?
信号量不是以自旋锁为前提的吗?
自旋锁都能实现多核同步
信号量能不能实现多核同步?
[/Quote]
小魔菇 2010-01-07
  • 打赏
  • 举报
回复
想请教的是
信号量在多核下能实现同步吗?
信号量不是以自旋锁为前提的吗?
自旋锁都能实现多核同步
信号量能不能实现多核同步?
Wenxy1 2010-01-07
  • 打赏
  • 举报
回复
Linux系统内核的锁机制一般通过3 种基本方式来实现,即原语、关中断和总线锁。
参考:
http://blog.sina.com.cn/s/blog_4c275d990100de45.html###
http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c93.html
小魔菇 2010-01-07
  • 打赏
  • 举报
回复
3Q
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 eclipse_2 的回复:]
引用 5 楼 eclipse_2 的回复:
明白了 谢谢各位大牛的解答

顺便问个小问题
linux是从那个内核版本开始支持SMP的?


好象是2。0版本吧
[/Quote]

2.0的内核已经有支持SMP,2.6时代在逐渐完善。

http://www.ibm.com/developerworks/cn/linux/l-linux-smp/index.html

这方面的东西可以去IBM.com看看。
xhy_851221 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 eclipse_2 的回复:]
明白了 谢谢各位大牛的解答

顺便问个小问题
linux是从那个内核版本开始支持SMP的?
[/Quote]2.4
小魔菇 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 eclipse_2 的回复:]
明白了 谢谢各位大牛的解答

顺便问个小问题
linux是从那个内核版本开始支持SMP的?
[/Quote]

好象是2。0版本吧

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧