码迷,mamicode.com
首页 > 系统相关 > 详细

Linux设备驱动程序 之 原子操作

时间:2019-10-29 19:48:41      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:执行   成功   体系结构   mic   stack   smp   假设   ips   www   

原子整数操作

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

 

技术图片

技术图片

原子位操作

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

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

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

技术图片

Linux设备驱动程序 之 原子操作

标签:执行   成功   体系结构   mic   stack   smp   假设   ips   www   

原文地址:https://www.cnblogs.com/wanpengcoder/p/11760734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!