介绍一下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...

面试题 相关文章推荐
什么是Deployment descriptors;都有什么类型的部署描述符
Jul 28 面试题
怎样声明接口
Sep 19 面试题
ORACLE第二个十问
Dec 14 面试题
中科软笔试题和面试题
Oct 07 面试题
介绍一下EJB的体系结构
Aug 01 面试题
Prototype中如何为一个元素添加一个方法
Dec 08 面试题
华为python面试题
May 03 面试题
mysql有关权限的表都有哪几个
Apr 22 面试题
JAVA高级程序员面试题
Sep 06 面试题
程序员经常用到的UNIX命令
Apr 13 面试题
Servlet方面面试题
Sep 28 面试题
DELPHI中如何调用API,可举例说明
Jan 16 面试题
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
php中的时间处理
2006/10/09 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
jquery编写日期选择器
2017/03/16 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
javascript中的相等操作符(==与===区别)
2019/12/21 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
python制作mysql数据迁移脚本
2019/01/01 Python
python 实现生成均匀分布的点
2019/12/05 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
开学典礼感言
2014/02/16 职场文书
暑期研修感言
2014/02/17 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
中学生打架检讨书
2014/10/13 职场文书
给老婆的检讨书
2015/01/27 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
Python中常见的导入方式总结
2021/05/06 Python