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


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

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

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

Tags in this post...

面试题 相关文章推荐
abstract class和interface有什么区别?
Jan 03 面试题
局部内部类是否可以访问非final变量?
Apr 20 面试题
Java里面有没有全局变量?为什么?
Feb 06 面试题
什么造成了Java里面的异常
Apr 24 面试题
SQL Server面试题
Oct 17 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jan 03 面试题
介绍一下gcc特性
Jan 20 面试题
关键字throw与throws的用法差异
Nov 22 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
Jul 06 面试题
如何现实servlet的单线程模式
Aug 05 面试题
Delphi工程师笔试题
Sep 21 面试题
Delphi笔试题
Nov 14 面试题
Windows和Linux动态库应用异同
Jul 28 #面试题
linux面试题参考答案(9)
Jan 29 #面试题
linux面试题参考答案(8)
Aug 11 #面试题
linux面试题参考答案(7)
Jul 24 #面试题
linux面试题参考答案(6)
Aug 29 #面试题
linux面试题参考答案(5)
Sep 01 #面试题
linux面试题参考答案(4)
Jan 28 #面试题
You might like
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
php之可变变量的实例详解
2017/09/12 PHP
document.documentElement的一些使用技巧
2013/04/18 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
node.JS md5加密中文与php结果不一致的解决方法
2017/05/05 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
2017/09/28 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Python语言快速上手学习方法
2018/12/14 Python
Python 转换文本编码实现解析
2019/08/27 Python
pycharm运行scrapy过程图解
2019/11/22 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
税务专业毕业生自荐信
2013/11/10 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
质量承诺书范文
2014/03/27 职场文书
大学运动会加油稿
2015/07/22 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs