Linux驱动中的并发控制

1)自旋锁:

a.由于等待锁的进程处于自旋状态,所以应该在临界代码操作耗时不长的环境下使用自旋锁

b.临界区代码中有阻塞语句时不能用自旋锁,因为阻塞语句引起进程的重新调度,启用新进程以后,新进程如果再次想获得锁时就会发生死锁。

c.临界资源中使用中断或者软中断时使用自旋锁

2)读写自旋锁:

a.多个读进程可以同时访问共享资源

b.同一时间内只允许一个写进程访问共享资源

c.读写进程不能并发

3)顺序锁:

a.读写可以并发

b.两个写进程不能并发

b.临界资源中不能有指针

 

4)信号量

a.当前进程无法获得信号量的时候,当前进程会休眠,新进程被启动,适合临界资源比较耗时的环境下应用

b.临界区中有阻塞语句时适合用信号量,因为用自旋锁有可能锁死

 

5)完成量

a.适合在进程间同步的时候用,即要求进程有先后执行顺序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值