自旋锁spinlock

1 在单处理器上的实现

单核系统上,不存在严格的并发,因此对资源的共享主要是多个任务分时运行造成的。

只要在某一时段,停止任务切换,就能够保证只有一个任务在运行。

这就是spinlock的实现机制。

   1: #define __LOCK(lock) \
   2:   do { preempt_disable(); __acquire(lock); (void)(lock); } while (0)
   1: #define _raw_spin_lock(lock)            __LOCK(lock)
   1: static inline void spin_lock(spinlock_t *lock)
   2: {
   3:     raw_spin_lock(&lock->rlock);
   4: }
   1: #define __UNLOCK(lock) \
   2:   do { preempt_enable(); __release(lock); (void)(lock); } while (0)

即基本上就是调用preempt_disable和preempt_enable。

自旋锁spinlock

上一篇:使用nasm写程序


下一篇:使用nasm写程序