当前位置:  技术问答>linux和unix

信号量的实现机制

    来源: 互联网  发布时间:2016-07-30

    本文导语:  自旋锁是锁总线实现的 那么信号量是怎么实现的? 也是锁总线吗? 那么为什么信号量在多核的情况下 不能实现同步功能 请大牛指点一下 | 自旋锁是锁总线实现的 那么信号量是怎么实现的...

自旋锁是锁总线实现的
那么信号量是怎么实现的? 也是锁总线吗?
那么为什么信号量在多核的情况下 不能实现同步功能

请大牛指点一下

|
自旋锁是锁总线实现的
那么信号量是怎么实现的? 也是锁总线吗?
也是锁总线
lock;

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

谁说的?

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

|

 信号量在多核下能实现同步吗? 可以
 信号量不是以自旋锁为前提的吗?不是,自旋锁只在SMP有效。
 自旋锁都能实现多核同步, 信号量能不能实现多核同步?应当可以

|


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

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

这方面的东西可以去IBM.com看看。

|
Linux系统内核的锁机制一般通过3 种基本方式来实现,即原语、关中断和总线锁。
参考:
http://blog.sina.com.cn/s/blog_4c275d990100de45.html###
http://www.kernel.org/pub/linux/kernel/people/rusty/kernel-locking/c93.html

|
我所理解的,
信号量跟自旋锁在多核下都可以实现同步。
但自旋锁一般用于多线程环境,也就是说,在多核的情况下,同一个进程的线程分配到不同的核上,一直在运行,自旋的意思就是自己一直检测直到条件满足就继续运行,没有一个挂起切换的状态。
而信号量的话必需经常挂起就绪运行这个状态。

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


|
2.4

    
 
 

您可能感兴趣的文章:

  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 关于信号量与UNIX信号的疑问
  • 自旋锁和读写自旋锁、信号量和读写信号量分别有什么区别?
  • semaphore.h sem.c Posix 信号量 System v 信号量
  • 当信号量(灯)遇上信号,help!
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • 关于消息队列信号量信号共享内存等核心编程的问题(求知若渴!!!.....)
  • 请问线程中的信号量,怎么设置成0,1信号量?
  • linux 中信号量的使用 当信号初始化的时候设置的值大于1将是如何?
  • 多个进程共用一个信号量,如果某个进程死掉,此时又将信号量锁定,其它进程就死掉,有什么办法可以解决这一问题
  • POSIX:有名信号量 和SYStem V的信号量 你用哪个?
  • 信号灯操作报错:semop:EINVAL(信号量集不存在或参数无效)
  • 求助一些关于信号量的问题
  • 【求助】多进程中 内核信号量无效?
  • 关于信号量的问题
  • 为什么中断不能用信号量?
  • 信号量
  • 信号量释放
  • 信号量的烦恼
  • 信号量的问题
  • 用信号量机制解决实际的三个进程同步问题
  • 信号量实现的同步互斥机制
  • 用户态能否实现信号量机制,来提供线程间互斥和同步的功能?
  • 靠,Linux提供给应用开发的信号量机制也太复杂了吧
  • linux设备驱动中的信号量机制
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 信号量的调整值什么意思
  • 请高人指点:在unix下,如何实现二值信号量
  • POSIX的信号量随内核存在的问题?
  • 信号量可以用于多进程多线程同时互斥不?
  • 关于信号量的问题(sem)????
  • 在linux下怎么使用信号量?
  • 进程间通信 信号量
  • 关于Linux下的信号量
  • 请问unix下如何设置信号量超时?
  • 关于信号量ID的疑问
  • 为什么中断不能用信号量? iis7站长之家
  • 信号量编程!
  • 请问下,在嵌入式linux驱动里面可不可以用信号量?
  • 使用信号量如何让父子进程交替运行?
  • 操作系统中的信号量
  • 询问一个信号量问题
  • 请问:p,v对共享区进行操作时, 需要几个信号量啊,一个行不行啊?
  • 问个信号量问题
  • 信号量和互斥锁有什么区别??
  • 使用信号量如何退出线程?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3