关于preempt_enable 和 preempt_disable
来源:互联网 发布:小米盒子电影软件 编辑:程序博客网 时间:2024/05/21 08:42
关于preempt_enable和 preempt_disable
允许抢占和禁止抢占。
例如:内核态程序和 中断处理程序的互斥
因为中断是异步的(不只要何时发生中断,也即随时可能发生中断),因此如果内核态的程序使用了和中断处理程序中相同的数据结构,那么必须进行互斥访问。
load %r0, counter
add %r0,1//发生中断
store %r0,conter
如果在第二条指令执行时发生中断,而中断处理程序也需要将counter加1等操作,那么counter变量的值就会变得紊乱。
因此,只要非中断处理代码要更新一个与中断处理程序共享的数据结构,那么它就首先禁止中断,执行临界段,然后再重新允许中断。在linux中,如下
preempt_disable();
load %r0, counter
add %r0,1//发生中断
store %r0,conter
preempt_enable();
0 0
- 关于preempt_enable 和 preempt_disable
- 关于preempt_enable 和 preempt_disable
- preempt_enable 和 preempt_disable
- preempt_enable 和 preempt_disable
- preempt_enable 和 preempt_disable
- barrier 和 preempt_disable() 学习
- barrier 和 preempt_disable() 学习
- barrier 和 preempt_disable() 学习
- barrier 和 preempt_disable() 学习
- barrier 和 preempt_disable() 学习
- barrier 和 preempt_disable() 学习
- preempt_disable
- preempt_disable
- 转载_barrier 和 preempt_disable() 学习
- barrier 和preempt_disable() 学习 (转)
- local_bh_disable, preempt_disable, local_irq_disable
- 由preempt_disable的实现想到的
- 关于 ## 和#
- DataGridView自定义行样式和行标题
- 剖析MFC六大关键技术(五六)--消息映射与命令传递
- 电驴使用
- 20快速开发网站项目的工具和方法
- JavaMail邮件回复
- 关于preempt_enable 和 preempt_disable
- Uni2D 入门
- 将24名志愿者分配给3个学校
- 扩展jtree的功能
- C#高性能大容量SOCKET并发(三):接收、发送
- FIO的安装、使用与分析
- “压缩感知” 之 “Hello World”
- C++ socket
- ptype_base/ptype_all(内核2.6.32)