驱动的并发和竞争

本文介绍了在Linux驱动开发中并发和竞争的概念,包括并发与并行的区别,以及多核CPU下的并发+并行模式。文章详细阐述了资源竞争的原因,并探讨了解决竞争的四种方法:原子操作、自旋锁、信号量和互斥锁。自旋锁可能导致死锁,使用时需要注意。最后,文章给出了选择不同解决方法的指导原则。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在Linux驱动开发中我们经常要考虑的一个问题就是并发和竞争,因为现在的SOC基本都是多核CPU,那么必然会存在争夺资源的问题,所以本小节就来介绍一下驱动中的并发和竞争。


一、什么是并发?

并发

所谓并发,就是通过算法将 CPU 资源合理地分配给多个任务,当一个任务执行 I/O 操作时,CPU 可以转而执行其它的任务,等到 I/O 操作完成以后,或者新的任务遇到 I/O 操作时,CPU 再回到原来的任务继续执行。
举个例子:
假设现在是有两个任务,那么当任务1执行的时候,CPU就会切换到任务2,这样任务2执行一定时间后又切换回任务1,这样两个任务看起来就是同时进行,也就是所谓的并发。

肯定还有人听过并行,并发和并行通常是面试的高频考点,所以这里也解释下什么是并行:

并行

并发是针对单核 CPU 提出的,而并行则是针对多核

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知道起个啥名“”

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值