1、屏蔽中断
应用范围:单CPU
原理:屏蔽中断后,中断无法处理,不存在竞态;屏蔽中断后,进程无法调度,只能执行本进程,因此也不存在竟态。
使用方法:
local_irq_disable() //屏蔽中断
local_irq_enable() //开中断
2、原子操作
自旋锁的基础
3、自旋锁
原理是原子操作,获不得自旋锁的进程将会原地打转
spinlock_t lock;
4、读写自旋锁
特殊的自旋锁,允许多个多操作,但只能有一个写操作
rwlock_t lock;
5、顺序锁
特殊的读写自旋锁
seqlock_t lock;
6、信号量
原理是原子操作,获不得信号量的进程将会休眠
7、互斥锁
相当于特殊的信号量
struct mutex
8、完成量
相当于特殊的信号量
struct completion
9、读写信号量
特殊信号量
struct rw_semaphore