内核的同步方法

来源:互联网 发布:网络规划设计师教程pdf 编辑:程序博客网 时间:2024/05/22 04:50

1.原子操作—两个原子操作绝对不可能并发的访问同一个变量。 内核提供了两个原子操作接口:原子整数操作和原子位操作。

  • 原子整数操作:整数的原子操作只能对atomic_t类型的数据进行处理。原因:(1)可以确保原子操作只与这种特殊类型数据在一起。(2)保证该类型的数据不会被传递个任何非原子函数。(3)可以保证编译器不对相应的值进行访问优化。(4)在不同体系结构上实现原子操作的时候,使用atomic_t可以屏蔽其间的差异。
  • typedef struct {
    volatile int count;
    } atomic_t; 在 < asm/atomic.h >中;
    原子操作使用很简单:atomic_t v; atomic_t u = ATOMIC_INIT(0)