当前位置: 技术问答>linux和unix
问一个关于自旋锁的问题?
来源: 互联网 发布时间:2016-09-26
本文导语: 很多资料上都说,自旋锁用在单核非抢占式的内核时,在编译的时候就时会被完成剔除出内核。这句话是怎么理解的呢? 是不是说在单核非抢占式的内核中自旋锁不起作用?还是根本不会出现竞争资源的情况,因为...
很多资料上都说,自旋锁用在单核非抢占式的内核时,在编译的时候就时会被完成剔除出内核。这句话是怎么理解的呢?
是不是说在单核非抢占式的内核中自旋锁不起作用?还是根本不会出现竞争资源的情况,因为是单核非抢占式的内核
是不是说在单核非抢占式的内核中自旋锁不起作用?还是根本不会出现竞争资源的情况,因为是单核非抢占式的内核
|
linux内核设计与实现中文版p101原话,注意在单处理器机器上编译的时候并不会加入自旋锁。它仅仅被当作一个设置内核抢占机制是否被启动的开关。如果禁止内核抢占,那么在编译内核时候自旋锁被剔除!这样的话是不是够明白呢?
|
对于单cpu 非抢占内核
进程上下文中保护临界区什么也不需要
中断上下文只需要禁止中断
这里无论是进程上下文还是中断上下文,都不需要自旋锁
进程上下文中保护临界区什么也不需要
中断上下文只需要禁止中断
这里无论是进程上下文还是中断上下文,都不需要自旋锁
|
不用锁哪来的死锁
应该说单cpu 非抢占内核中,只要禁止中断就能实现所有的对临界区的保护
|
我对ARM不熟,尚未听说多核ARM
既然很有兴趣,那就看eldd
讨论了4种情况
(1 )非抢占内核,单CPU 情况下存在于进程上下文的临界区;
(2 )非抢占内核,单CPU 情况下存在于进程和中断上下文的临界区;
(3 )可抢占内核,单CPU 情况下存在于进程和中断上下文的临界区;
(4 )可抢占内核,SMP 情况下存在于进程和中断上下文的临界区。
http://blog.csdn.net/nhczp/archive/2009/10/08/4643425.aspx
既然很有兴趣,那就看eldd
讨论了4种情况
(1 )非抢占内核,单CPU 情况下存在于进程上下文的临界区;
(2 )非抢占内核,单CPU 情况下存在于进程和中断上下文的临界区;
(3 )可抢占内核,单CPU 情况下存在于进程和中断上下文的临界区;
(4 )可抢占内核,SMP 情况下存在于进程和中断上下文的临界区。
http://blog.csdn.net/nhczp/archive/2009/10/08/4643425.aspx