驱动开发基础 -- 并发、竞争、同步、异步

1.什么是并发
  并发是指具有有处理多个任务的能力,不一定要同时。

2.什么是并行
  并行是指具有同时处理多个任务的能力。

3.并发和并行的关系/区别
  “并行”概念是“并发”概念的一个子集。也就是说,你可以编写一个拥有多个线程或者进程的并发程序,但如果没有多核处理器来执行这个程序,那么就不能以并行方式来运行代码。

4.并发与竞争
  如果多个线程/进程并发执行,并且都在对某一共享资源(硬件资源和软件上的全局变量、静态变量等)进行访问,则很容易导致竞争

5.产生竞争情景
  -对称多处理器( SMP)。多个CPU共同访问同一块共享资源,就会出现竞争。
  -内核进程的抢占。一个低优先级的进程可能被另一个更高优先级的进程抢占。如果两个进程都访问了同一块共享资源,就会出现竞争。
  -中断。中断可以打断正在执行的进程,若中断处理程序访问了进程正在访问的资源,则也会出现竞争。

6.竞争对共享资源的影响
  如果在访问共享资源时不独占该共享资源,可能会造成资源异常(如变量值混乱、设备出错或内存块内容不是期望值等),进而导致程序运行异常甚至崩溃。

7.解决竞争问题
  解决竞争问题的途径是保证对共享资源的互斥访问。

8.什么是互斥
  互斥是指一个执行单元在访问共享资源的时候,其它的执行单元被禁止访问。

8.实现互斥方法
  实现互斥有多种方法:信号量、互斥锁、自旋锁、临界区、

9.什么是同步
  所谓同步,可以理解为执行一个任务时,在没得到结果之前,系统处于阻塞状态,只有这个任务结束之后才往下执行其它任务。

10.同步和互斥的关系
  互斥要求两个任务不同时发生;同步要求两个任务按照一定次序依次发生(不同时发生);同步是一种特殊的互斥。即”同步是互斥的子集。“

11.什么是异步
  所谓异步,可以理解为在执行一个任务时,系统直接返回去执行其他事,过段时间再去获取之前任务的结果。

12.同步和异步的区别
   -同步就是一件事,一件事情一件事的做。异步就是,做一件事情,不引响做其他事情。例如:吃饭和说话,只能一件事一件事的来,因为只有一张嘴;但吃饭和听音乐是异步的,因为,听音乐并不引响我们吃饭。

中断:中断其实可以分为同步中断和异步中断,然后…它们俩还有一个名字,叫“异常”和“中断”…其实还可以叫它俩…“软件中断”和“硬件中断”,超级混乱…

同步中断/异常/软件中断:同步中断(它既然有“同步”的概念说明它和时钟应该会有点关系吧...)是指在一条指令结束完之后,CPU才会发出中断,而不是马上执行中断,比如系统调用,他就采用了同步中断(或者叫软中断/异常/软件中断);

软中断进入到异常向量中的SWI模式,而不是FIQ/IRQ模式;

硬中断一定是抢占的吧,CPU立即停止当前任务,保存中断上下文,切换到IRQ/FIQ模式

软中断我用同样的方式去理解的话,应该也是发生抢占,CPU先执行当前的任务,直到当前任务结束时,再产生中断,保存中断上下文,切换到SWI模式?

软中断触发条件:
这个我看过,更标准的说法应该是在每一个时钟周期CPU都会产生一次调度,这就是系统分时执行各个进程的;然后在每一次调度结束前,CPU都会判断当前是否产生软中断,如果产生了软中断那就会开始处理,保存中断上下文,执行软中断啥的

禁止内核抢占的函数:preempt_disable()和preempt_enable()

中断指的是发生在同一CPU下的抢占;而抢占可以是在不同CPU下发生的。因此,大致可以概括为,中断是抢占的一部分,抢占包括中断。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Evan_ZGYF丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值