提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
在Linux驱动开发中我们经常要考虑的一个问题就是并发和竞争,因为现在的SOC基本都是多核CPU,那么必然会存在争夺资源的问题,所以本小节就来介绍一下驱动中的并发和竞争。
一、什么是并发?
并发
所谓并发,就是通过算法将 CPU 资源合理地分配给多个任务,当一个任务执行 I/O 操作时,CPU 可以转而执行其它的任务,等到 I/O 操作完成以后,或者新的任务遇到 I/O 操作时,CPU 再回到原来的任务继续执行。
举个例子:
假设现在是有两个任务,那么当任务1执行的时候,CPU就会切换到任务2,这样任务2执行一定时间后又切换回任务1,这样两个任务看起来就是同时进行,也就是所谓的并发。
肯定还有人听过并行
,并发和并行通常是面试的高频考点,所以这里也解释下什么是并行:
并行
并发是针对单核 CPU 提出的,而并行则是针对多核