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


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

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

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

Tags in this post...

面试题 相关文章推荐
PHP中如何使用Cookie
Oct 28 面试题
异常和异常类的概念
Sep 12 面试题
东方通信股份有限公司VC面试题
Aug 27 面试题
腾讯技术类校园招聘笔试试题
May 06 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
C#怎么让一个窗口居中显示?
Oct 20 面试题
介绍一下grep命令的使用
Jun 12 面试题
Linux Interview Questions For software testers
Jun 02 面试题
EJB实例的生命周期
Oct 28 面试题
Java语言程序设计测试题判断题部分
Jan 06 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
Apr 24 面试题
一个J2EE项目团队的主要人员组成是什么
Jun 04 面试题
简述安装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实现头像上传预览功能
2017/04/27 PHP
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
不可错过的十本Python好书
2017/07/06 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
django在开发中取消外键约束的实现
2020/05/20 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
Python实现自动整理文件的脚本
2020/12/17 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
软件工程专业推荐信
2013/10/28 职场文书
汽车维修专业个人求职信范文
2014/01/01 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
法制宣传日活动总结
2014/04/29 职场文书
美食节目策划方案
2014/05/31 职场文书
新郎答谢词
2015/01/04 职场文书
大学生入党自荐书
2015/03/05 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
MySQL 字符集 character
2022/05/04 MySQL
Python四款GUI图形界面库介绍
2022/06/05 Python