一、原子操作
原子整形操作API
| 函数 | 描述 |
|---|---|
| ATOMIC_INIT(int i) | 定义原子变量的时候对其初始化。 |
| int atomic_read(atomic_t *v) | 读取 v 的值,并且返回。 |
| void atomic_set(atomic_t *v, int i) | 向 v 写入 i 值。 |
| void atomic_add(int i, atomic_t *v) | 给 v 加上 i 值。 |
| void atomic_sub(int i, atomic_t *v) | 从 v 减去 i 值。 |
| void atomic_inc(atomic_t *v) | 给 v 加 1,也就是自增。 |
| void atomic_dec(atomic_t *v) | 从 v 减 1,也就是自减 |
| int atomic_dec_return(atomic_t *v) |
本文详细介绍了Linux驱动开发中的并发控制手段,包括原子操作、自旋锁、信号量和互斥体。自旋锁适用于短时间的临界区,而信号量则允许线程休眠,适用于长时间资源占用。互斥体在保护临界区时可能导致线程休眠,不能在中断中使用。各种机制的适用场景和注意事项也进行了阐述。
订阅专栏 解锁全文
439

被折叠的 条评论
为什么被折叠?



