Linux内核的同步机制是什么?主要有哪几种内核锁


Posted in 面试题 onJuly 11, 2016
Linux的同步机制从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过渡;
伴随着从非抢占内核到抢占内核的过度。Linux的锁机制越来越有效,也越来越复杂。

Linux的内核锁主要是自旋锁和信号量。
自旋锁最多只能被一个可执行线程持有,如果一个执行线程试图请求一个已被争用(已经被持有)的自旋锁,那么这个线程就会一直进行忙循环——旋转——等待锁重新可用。要是锁未被争用,请求它的执行线程便能立刻得到它并且继续进行。自旋锁可以在任何时刻防止多于一个的执行线程同时进入临界区。
Linux中的信号量是一种睡眠锁。如果有一个任务试图获得一个已被持有的信号量时,信号量会将其推入等待队列,然后让其睡眠。这时处理器获得自由去执行其它代码。当持有信号量的进程将信号量释放后,在等待队列中的一个任务将被唤醒,从而便可以获得这个信号量。

信号量的睡眠特性,使得信号量适用于锁会被长时间持有的情况;只能在进程上下文中使用,因为中断上下文中是不能被调度的;另外当代码持有信号量时,不可以再持有自旋锁。

Tags in this post...

面试题 相关文章推荐
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
Sep 08 面试题
一套VC试题
Jan 23 面试题
C++如何引用一个已经定义过的全局变量
Aug 25 面试题
雅虎笔试题(字符串操作)
Mar 24 面试题
database面试题
Mar 28 面试题
.NET是怎么支持多种语言的
Feb 24 面试题
抽象类和接口的区别
Sep 19 面试题
Linux Interview Questions For software testers
May 17 面试题
介绍一下grep命令的使用
Jun 28 面试题
介绍一下gcc特性
Oct 31 面试题
META-INF文件夹中的MANIFEST.MF的作用
Jun 21 面试题
95%的面试官都会问到的50道Java线程题,附答案
Aug 03 面试题
简述安装Slackware Linux系统的过程
May 08 #面试题
介绍一下Linux内核的排队自旋锁
Aug 27 #面试题
Windows和Linux动态库应用异同
Jul 28 #面试题
linux面试题参考答案(9)
Jan 29 #面试题
linux面试题参考答案(8)
Aug 11 #面试题
linux面试题参考答案(7)
Jul 24 #面试题
linux面试题参考答案(6)
Aug 29 #面试题
You might like
第一个无线电台是由谁发明的
2021/03/01 无线电
php inc文件使用的风险和注意事项
2013/11/12 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
答题辅助python代码实现
2018/01/16 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
python中的itertools的使用详解
2020/01/13 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
Python try except else使用详解
2021/01/12 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
全球高级音频和视频专家:HiDef Lifestyle
2019/08/02 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
我的梦中国梦演讲稿
2014/04/23 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
费城故事观后感
2015/06/10 职场文书
2019年工作总结范文
2019/05/21 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL