介绍一下Linux内核的排队自旋锁


Posted in 面试题 onJanuary 04, 2014
排队自旋锁(FIFO Ticket Spinlock)是 Linux 内核 2.6.25 版本引入的一种新型自旋锁,它通过保存执行线程申请锁的顺序信息解决了传统自旋锁的“不公平”问题。排队自旋锁的代码由 Linux 内核开发者 Nick Piggin 实现,目前只针对 x86 体系结构(包括 IA32 和 x86_64),相信很快就会被移植到其它平台。

自旋锁(Spinlock)是在Linux 内核中广泛运用的底层同步机制。它是一种工作于多处理器环境的特殊的锁,在单处理环境中自旋锁的操作被替换为空操作。当某个处理器上的内核执行线程申请自旋锁时,如果锁可用,则获得锁,然后执行临界区操作,最后释放锁;如果锁已被占用,线程并不会转入睡眠状态,而是忙等待该锁,一旦锁被释放,则第一个感知此信息的线程将获得锁。

传统的自旋锁本质上用一个整数来表示,值为1代表锁未被占用。这种无序竞争导致执行线程无法保证何时能取到锁,某些线程可能需要等待很长时间。随着计算机处理器个数的不断增长,这种“不公平”问题将会日益严重。

Tags in this post...

面试题 相关文章推荐
递归计算如下递归函数的值(斐波拉契)
Feb 04 面试题
实现向右循环移位
Jul 31 面试题
如何理解委托
Jan 06 面试题
北京天润融通.net面试题笔试题
Feb 20 面试题
什么是View State?
Jan 27 面试题
C#可否对内存进行直接的操作
Feb 26 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Nov 24 面试题
What is EJB
Jul 22 面试题
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
Mar 05 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
Jan 26 面试题
Java面试题:说出如下代码的执行结果
Oct 30 面试题
Java面试题冲刺第十五天--设计模式
Aug 07 面试题
Windows和Linux动态库应用异同
Apr 17 #面试题
linux面试题参考答案(9)
Jan 07 #面试题
linux面试题参考答案(8)
Apr 19 #面试题
linux面试题参考答案(7)
Oct 29 #面试题
linux面试题参考答案(6)
Jun 23 #面试题
linux面试题参考答案(5)
Nov 05 #面试题
linux面试题参考答案(4)
Sep 21 #面试题
You might like
php 字符转义 注意事项
2009/05/27 PHP
php 过滤危险html代码
2009/06/29 PHP
php自动获取关键字的方法
2015/01/06 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
在Python下尝试多线程编程
2015/04/28 Python
python中温度单位转换的实例方法
2020/12/27 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
介绍一些UNIX常用简单命令
2014/11/11 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
部队领导证婚词
2014/01/12 职场文书
房地产财务管理制度
2014/02/02 职场文书
校园安全教育广播稿
2014/02/17 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
学生会个人总结范文
2015/02/15 职场文书
公司宣传语大全
2015/07/13 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
springboot实现string转json json里面带数组
2022/06/16 Java/Android