linux driver并发和竞态--随记

并发、原子操作、锁、信号量

并发和竞态

并发是指多个执行单元程序同时、并行的执行,这时并发的执行单元对一些共享资源如硬件资源、cpu资源、全局变量等的访问就会容易造成竞争使用
并发多发生的环境:
1、SMP多核处理器,系统总线的抢占等
2、单CPU抢占式内核中,进程和抢占它的进程之间,抢占式内核操作系统是实时操作系统:vxworks、ucos
3、中断(硬中断、软中断、tasklet、中断底半部)和进程之间

如何避免发生竞态:
将抢占的资源临界区做一个保护,使得同一时间点只有一个执行单元访问它
方式:
原子操作
互斥锁
自旋锁
信号量

原子操作

原子操作在操作完成之前绝对不对被其他事物所打断的
定义在linux/include/asm-generic/atomic.h

互斥锁

自旋锁

信号量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值