内核中常用的同步原语使用说明
来源:互联网 发布:手机淘宝解绑银行卡 编辑:程序博客网 时间:2024/04/28 19:35
内核中常用的同步原语使用说明
在可以休眠的地方,一般使用mutex或semaphore, 不可以休眠的地方一般用spinlock(自旋锁)
mutex/semaphore: 可以在无法进入临界区的时候进入休眠状态, 一般不能用在中断或其他异步上下文中
使用:
DEFINE(mutex); mutex_lock() / mutex_unlock()
spinlock: 在无法进入临界区的时候就一直在那不停的获取锁, 一般用在不能休眠的地方, 因此甚至内核里在使用spinlock的时候都会禁止CPU的抢占调度方式, 总之,适用于spinlock的核心规则是: 任何拥有spinlock的代码都必须是原子的, 使用规则: 1) 不能休眠, 2) 如果spinlock同时也被中断上下文使用则应获取锁的时候关闭中断, 3) spinlock必须在尽可能短的时间内完成.
使用:
spinlock_t my_lock; spin_lock_init(); spin_lock()/spin_lock_irqsave()/ spin_lock_irq() / spin_lock_bh(); spin_unlock()/spin_unlock_irqrestore()/spin_unlock_irq()/spin_unlock_bh
- 内核中常用的同步原语使用说明
- 内核同步原语
- MAC内核编程指南-同步原语
- Linux内核同步原语之原子操作
- Linux内核同步原语之per-cpu变量
- Linux内核同步原语之原子操作
- Linux内核同步原语之per-cpu变量
- Linux内核同步原语之原子操作
- Linux内核同步原语之原子操作
- linux内核中typeof的使用说明
- DSP48E1原语使用说明之一
- 进程同步:问题的解决,原语
- Windows Vista 新增的同步原语
- 同步原语
- 同步原语
- 同步原语
- linux同步原语
- 原生态的servlet类使用说明
- css在JSP中不生效之路径问题
- Asp.Net防止刷新重复提交数据小记
- 任意字节对齐的内存分配函数
- HTML编辑器FCKeditor使用详解
- 美不胜收 2008全球移动大会场外风光赏
- 内核中常用的同步原语使用说明
- WINCE bootloader创建
- java swing JList用法实例
- Issue 12(Anyone can make things bigger and more complex. What require more effort and courage is to move in the opposite directi
- [转]在 ASP.NET 中执行 URL 重写
- C#访问Access数据类
- Struts使用标签的问题
- 嵌入式数据库介绍
- 用VC++实现拨号连接及动态IP地址获取