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


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

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

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

Tags in this post...

面试题 相关文章推荐
怎样让char类型的东西转换成int类型
Dec 09 面试题
C和C++经典笔试题附答案解析
Aug 18 面试题
类成员函数的重载、覆盖和隐藏区别
Jan 27 面试题
HSRP的含义以及如何工作
Sep 10 面试题
Solaris操作系统的线程机制
Dec 23 面试题
几个Linux面试题笔试题
Dec 01 面试题
Ajax的优点和缺点
Nov 21 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
May 20 面试题
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Jul 02 面试题
同步和异步有何异同,在什么情况下分别使用他们
Apr 09 面试题
介绍一些UNIX常用简单命令
Nov 11 面试题
Unix控制后台进程都有哪些进程
Sep 22 面试题
简述安装Slackware Linux系统的过程
Jan 12 #面试题
介绍一下Linux内核的排队自旋锁
Jan 04 #面试题
Windows和Linux动态库应用异同
Apr 17 #面试题
linux面试题参考答案(9)
Jan 07 #面试题
linux面试题参考答案(8)
Apr 19 #面试题
linux面试题参考答案(7)
Oct 29 #面试题
linux面试题参考答案(6)
Jun 23 #面试题
You might like
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
python获取整个网页源码的方法
2020/08/03 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
python openssl模块安装及用法
2020/12/06 Python
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
UNIX特点都有哪些
2016/04/05 面试题
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
圆明园观后感
2015/06/03 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书