操作系统中并发和并行的区别

一、教材解释:

· 并行是指两个或者多个事件在同一时刻发生,而并发是指两个或者多个事件在同一时间间隔发生

· 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件

二、c语言站长公众号解释:

1、并发

早期计算机的CPU都是单核的,一个CPU在同一时间只能执行一个进程或线程,当系统中有多个进程或线程等待执行时,CPU只能执行完一个再执行下一个。计算机在运行过程中,有很多指令会设计i/o操作,而i/o操作又是相当耗时间的,速度远远低于CPU,这导致CPU经常处于空闲状态,只能等待i/o操作完成后才能继续执行后面的指令。为了提高CPU的利用率,减少等待时间,人们提出了一种CPU并发工作理论:

所谓并发,就是通过一种算法将CPU资源合理地分配给多个任务,当一个任务执行i/o操作时,CPU可以转而执行其他的任务,等待i/o操作完成以后,或者新的任务遇到i/o操作时,CPU在回到原来的任务继续执行。

虽然CPU在同一时刻只能执行一个任务,但是通过将CPU的使用权在恰当的时机分配给不同的任务,使得多个任务在视觉上看起来是一起执行的。CPU的执行速度极快,多任务切换的时间也极短,用户根本感受不到。

操作系统负责将有限的CPU资源分配给不同的任务,但是不同操作系统的分配方式不太一样,常见的有:

· 当检测到正在执行的任务进行i/o操作时,就将CPU资源分配给其他任务

· 将CPU时间平均分配给各个任务,每个任务都可以获得CPU的使用权。在给定的时间内,即使任务没有执行完成,也要将CPU资源分配给其他任务,该任务需要等待下次分配CPU使用权后再继续执行。

将CPU资源合理地分配给多个任务共同使用,有效避免了CPU被某个任务长期霸占的问题,极大地提高了CPU资源利用率。

2、并行

并发是针对单核CPU提出的,而并行是针对多核CPU提出的(多核CPU内部集成了多个计算核心,每个核心相当于一个简单的CPU)。多核CPU的每个核心都可以独立地执行一个任务,而且多个核心之间不会相互干扰。在不同核心上执行的多个任务,是真正地同时运行,这种状态就叫做并行。

 双核CPU执行两个任务时,每个核心各自执行一个任务,和单核CPU在两个任务之间不断切换相比,它的执行效率更高。

3、并发+并行

在实际工作场景中,处于运行状态的任务(线程或进程)是非常多的,尤其是电脑和手机,开机就有几十个任务,而CPU往往只有四核、八核、十六核,远低于任务(线程或进程)的数量,这个时候就会同时存在并发和并行两种情况:所有核心都要并行工作且每个核心还要并发工作。

 总结:并发针对单核CPU而言,指的是CPU交替执行不同任务的能力;并行真多多核CPU而言,指的是多个核心同时执行多个任务的能力。在多核CPU中,并发和并行一般都会同时存在,他们都是提高CPU处理任务能力的重要手段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

亲爱的老少女

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

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

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

打赏作者

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

抵扣说明:

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

余额充值