理解并发、并行、进程、线程、协程及它们之间的关系

并行和并发是计算机科学中的重要概念,涉及程序执行的同步和资源利用。并行是指程序真正的同时执行,而并发则表现为宏观上的同时执行,微观上仍是顺序切换。多道程序技术通过时间片轮转实现并发,提高CPU利用率。进程和线程是控制并发的基本单位,线程相比进程更为轻量级,协程则提供了一种更高效、轻量的并发执行方式,由程序自身控制执行流程。
摘要由CSDN通过智能技术生成

并行与并发

并行

在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。

并发

了解下单道程序技术和多道程序技术可以加深对并发的理解。

单道程序技术

为了实现对作业的连续处理,作业以脱机IO的形式输出到磁带上,并在系统中配备监督程序。

作业被一个一个的连续处理,直至作业被全部处理完成(程序的顺序执行)。单道程序技术是为了解决人机矛盾和CPU与IO设备不匹配的问题,但是不能充分的利用系统的资源,现已很少被使用。

多道程序技术

在该系统中,用户提交的作业会暂时存在存放在外存上,并排成一个队列,称为后备队列。然后作业调度时会按一定的算法从队列中选取若干作业放入内存,使他共享cpu和系统中的各种资源。在执行一程序时利用IO操作cpu处于空挡期在调用另一程序运行,进而实现多道程序交替运行,提高CPU的利用率。

正因为系统中的多道程序技术,使得程序可以并发执行。

并发是指在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。

通俗理解

假如有一个场景,某个人正要做两个事,吃饼干,看书。下面有两种情况

情况一  他在看书的同时吃饼干,最后饼干吃完了,书也看完了

情况二 他看书的时候,没有吃饼干,在吃饼干的时候没有看书,但是这两件事件在一段时间内做完了。

并行为情况一,在同一时刻做多件事

并发为情况二,在一段时间内,多个事件在做,宏观上相当于这段时间内同时做多件事,但在微观上同一时刻只能做一件事。

单处理机系统和多处理机系统中的并发

单处理机系统,将CPU执行分成多个时间片,在不同的时间片中切换不同的程序,使之交替执行,在微观上,同一时刻只能运行一个程序,宏观上,在一个时间段内多个进程是同时进行的。

多处理机的系统,可以充分利用多处理机的优势,这些并发执行的程序可被分在多个处理机中实现并行执行。

备注:单处理机系统指系统中有一个物理CPU,多处理机系统是指系统中有多个物理CPU。

进程和线程

进程

为了对并发执行的程序加以描述和控制,引入了进程的概念,为多个程序建立多个进程,他们可以并发执行。进程是指在系统中能独立运行并作为资源分配的基本单位,他是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。

不过进程的时间和空间开销较大,比如一个进程并发执行需要以下步骤

1、创建进程,分配资源,建立PCB

2、撤销进程,回收占用资源

3、进程的切换,对进程进行上下文切换,需要保留当前CPU环境,并设置新选中的CPU环境

线程

线程作为比进程更小的调度和分派的基本单位,不在拥有资源的基本单位属性,共享进程中分配的资源,是进程的实体。

线程是轻型进程,在线程切换时仅需保存和设置寄存器中的少量内容,相较于进程切换来说,线程的切换代价远小于进程切换,此外线程在分配和回收PCB和其他资源时,线程付出的代价也远小于进程。

进程与线程的关系

  • 一个程序中至少拥有一个进程,一个进程中至少拥有一个线程。
  • 在多处理机系统中,单线程进程只能运行在一个处理机上,但对于多线程进程,其可以将一个进程中的多个线程分配到多个处理器上,并行运行。
  • 多进程,多线程在多处理机系统中都可以利用多个处理机的优势,可以实现并行执行,在单处理机中只能并发执行。

协程

协程,相较线程来说更加轻量级的;它不被操作系统的内核所管理,完全由程序所控制,在并发时不需要切换上下文,极大的减少了资源的消耗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杜小白也想的美

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

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

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

打赏作者

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

抵扣说明:

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

余额充值