Linux驱动中的并发控制

本文详细介绍了自旋锁、读写自旋锁、顺序锁、信号量及完成量等并发控制机制的特点与适用场景,帮助读者理解如何根据不同的临界资源访问特性选择合适的锁类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)自旋锁:

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

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

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

2)读写自旋锁:

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

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

c.读写进程不能并发

3)顺序锁:

a.读写可以并发

b.两个写进程不能并发

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

 

4)信号量

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

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

 

5)完成量

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值