首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
内核同步
时间:
2015-05-11 08:51:21
阅读:
131
评论:
0
收藏:
0
[点我收藏+]
标签:
内核
kernel
同步
并发
linux
1、内核如何为不同的请求提供服务
(1)内核抢占:如果一个进程还在处理一个异常的时候,分配给它的时间片到期了,会发生什么事情呢?这取决于有没有启用内核抢占(Kernel Preemption),如果没有启用,进程就继续处理异常,如果启用了,进程可能会立即被抢占,异常的处理也就暂停了,直到schedule()再度选择原先那个进程(注意:内核处理中断的时候,必然会禁用内核抢占,所以这里才说是异常)。
内核抢占的目的是减少用户态进程的分派延迟。
2、同步原语
3、每CPU变量:
4、原子操作
5、优化和内存屏障
6、自旋锁
7、顺序锁
8、读-拷贝-更新(RCU)
RCU只保护被动态分配并通过指针引用的数据结构
在被RCU保护的临界区中,任何内核控制路径都不能睡眠。
9、信号量
Linux提供两种信号量:
内核信号量,由内核控制路径使用
System V IPC信号量,由用户态进程使用
(1)读/写信号量
(2)补充原语
(3)禁止本地中断
(4)禁止和激活可延迟函数
10、对内核数据结构的同步访问
(1)内核开发者才去下述由经验得到的法则:把系统中的并发度保持在尽可能高的程度。
系统中的并发度主要取决于两个因素:同时运转的I/O设备数和进行有效工作的CPU数。
(2)为了有效地利用CPU,应该尽可能避免使用基于自旋锁的同步原语
11、在自旋锁、信号量及中断禁止之间选择
(1)保护异常所访问的数据结构
(2)保护中断访问的数据结构
(3)保护可被延迟函数所访问的数据结构
(4)保护由异常和中断访问的数据结构
(5)保护由异常和可延迟函数访问的数据结构
(6)保护由中断和可延迟函数访问的数据结构
(7)保护由异常、中断和可延迟函数访问的数据结构
12、避免竞争条件的实例
(1)引用计数器
(2)大内核锁
(3)内存描述符读/写信号量
(4)slab高速缓存链表的信号量
(5)索引节点的信号量
内核同步
标签:
内核
kernel
同步
并发
linux
原文地址:http://blog.csdn.net/ucan23/article/details/45640159
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!