zoukankan      html  css  js  c++  java
  • Linux设备驱动程序 之 原子操作

    原子整数操作

    当共享资源是一个简单的整数值时,可以使用内核提供的一种原子的整数类型,称为atomic_t,定义在<linux/types.h>中,操作定义在<linux/atomic.h>中;

     

    原子位操作

    内核提供了一组针对原子位进行操作的函数,它们与体系结构相关,定义在文件<asm/bitops.h>;即使是在SMP计算机上,这些函数均尅确保为原子的,因此能提供夸处理器的一致性;

    真正的原子操作需要的是-所有中间结果都正确无误;假设有两个位操作,先对某位置位,然后清0,如果没有原子操作,那么这一位可能的确清0了,但是也可能根本没有置位;置位操作可能与清除操作同时发生,但是没有成功;清除操作可能成功了,这一位如愿呈现为清0;但是,有了原子操作,置位会真正的发生,可能有那么一刻,该操作显示所有置位,然后清除操作才执行,该位变为0了;

    这种行为可能是重要的,尤其当顺序性开始起作用的时候,或者当操作寄存器的时候;

  • 相关阅读:
    Lua 的元表怎么理解
    Lua中的元表与元方法
    Lua 的元表怎么理解
    VMware Workstation 系统备份-虚拟机克隆方法
    Lua中的元表与元方法
    bzoj2809
    bzoj2733
    bzoj1334
    bzoj1211
    bzoj3083 3306
  • 原文地址:https://www.cnblogs.com/wanpengcoder/p/11760734.html
Copyright © 2011-2022 走看看