Advertisement

Linux设备驱动中的并发控制:读写自旋锁

阅读量:

5.2 读写自旋锁

自旋互斥机制不考虑锁定的临界区所执行的具体操作类型, 即使是read或者write类别的操作都会受到同样的对待, 一视同仁。即使多个执行单元同时获取临界资源也会导致互斥现象的发生, 这是互斥机制的基本特性之一。在共享资源被多个执行单元并发访问时, 通常情况下read操作是可以自由并行进行的, 但引入了read-writephilosophy(即read-writelock)后则允许read操作实现多路访问的同时, 写操作也只能由单一执行单元完成以保证系统的安全性与一致性。read-writephilosophy被认为是一种比传统的selflocking更为精细的一种互斥机制, 它既保留了selflocking中的"旋转"概念, 又通过将write操作限制在单点独占的同时仍然允许read操作实现多路并行以满足实际应用需求

读写自旋锁涉及的操作如下。

1.定义和初始化读写自旋锁
rwlock_t my_rwlock;

rwlock_init(&my_rwlock); /* 动态初始化 */

无返回值函数read_lock接受一个rwlock_t指针作为参数。
无返回值函数read_lock_irqsave接收一个rwlock_t指针以及一个unsigned long类型的flags。
无返回值函数read_lock_irq接受一个rwlock_

全部评论 (0)

还没有任何评论哟~