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


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

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

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

Tags in this post...

面试题 相关文章推荐
介绍一下Java的安全机制
Jun 28 面试题
C/C++程序员常见面试题二
Nov 19 面试题
Sony C++笔试题
Mar 10 面试题
介绍一下HTTP、HTTPS和SSL
Dec 16 面试题
远东集团网络工程师面试题
Oct 20 面试题
动态密码技术
Oct 18 面试题
介绍一下木马病毒的种类
Jul 26 面试题
C# .NET面试题
Nov 28 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
Sep 07 面试题
中科软笔试题和面试题
Oct 07 面试题
同步和异步有何异同,在什么情况下分别使用他们?
Dec 28 面试题
Java基础类库面试题
Sep 04 面试题
简述安装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
第十二节 类的自动加载 [12]
2006/10/09 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
应届生个人求职信模板
2013/11/26 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
房产协议书范本
2014/10/18 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python