首页 理论教育进程状态及多进程并发执行的资源利用效率提高

进程状态及多进程并发执行的资源利用效率提高

【摘要】:进程分配到除CPU资源以外所有资源的状态称为就绪状态。图5-9 进程的状态转换图4.多进程并发执行对资源利用效率的提高我们以3个并发执行的进程为例说明多进程并发执行对资源利用效率的提高。如图5-10所示,假设有进程A、进程B和进程C的3个进程。

1.程序的顺序执行和并发执行

在早期的计算机系统中,只能进行单道程序的运行,也就是说,每一次只能允许一道程序运行。在这道程序运行时,它将独立占用整个计算机系统的资源,计算机按照程序的执行步骤顺序地一步一步执行,在该程序执行完以前,其他程序只能等待。这种程序的执行方式称为程序的顺序执行。显然,在顺序执行下,当程序占用CPU资源运行时,输入/输出等设备资源就闲置;当程序占用输入/输出设备资源进行输入/输出时,CPU等设备资源就闲置。因此,程序的顺序执行方式对计算机系统资源的利用率很低。

程序的并发执行是让多道程序同时运行。但是,传统的计算机CPU只有一个(现在已有多CPU的计算机系统),每一时刻只能执行一条机器指令,要让计算机并发执行多道程序,需要把CPU资源分成很小的时间片,在每一个时间片内虽然只执行一道程序运行,但时间片规定的限度一到,就切换另一道程序运行。这样,就可以在单CPU设备上实现多道程序的并发执行。

2.进程的概念

进程是CPU管理中最基本和最重要的概念。就基本概念来说,程序是一个静态的代码集合,而进程是程序的动态执行过程。程序在动态运行时需要占用若干资源(如CPU资源、内存资源等),进程既是资源分配的基本单位,又是调度和运行的基本单位。进程有三种状态:就绪、执行和阻塞。进程分配到除CPU资源以外所有资源的状态称为就绪状态。在多道系统中,若干个调入内存的程序(此时称为进程)构成就绪进程队列。进程分配到包括CPU资源在内的所有资源,并正在运行的状态称为执行状态。进程因某种事件(如遇到I/O操作请求)而暂时停止运行的状态称作阻塞状态。

3.进程的状态转换(www.chuimin.cn)

多个并发运行的进程形成进程的状态转换图。一般来说,进程的状态转换图如图5-9所示。初始时,进程处于就绪状态。所有就绪状态的进程组织成一个就绪进程队列。队列是一种按先到先服务方式组织的数据结构。就绪进程队列就是说所有处于就绪状态的进程按先到先服务的方式排列。当CPU资源空闲时,进程调度程序从就绪进程队列中选出最先到的一个进程,把CPU资源分配给该进程,然后该进程转换到运行状态;在CPU规定的时间片限度内,分配到CPU资源的进程运行,当CPU规定的时间片限度一到,处于运行状态的进程就被重新放入就绪进程队列,进程调度程序从就绪进程队列中重新选出最先到的一个进程,把CPU资源分配给该进程,然后该进程转换到运行状态。当某个处于运行状态的进程需要等待某事件发生后才能继续运行(如进程需要等待用户输入数据)时,该进程就处于阻塞状态;当处于阻塞状态的进程所等待的事件发生(如进程需要的数据已得到)时,处于阻塞状态的进程就重新被加入到就绪进程队列中。

图5-9 进程的状态转换图

4.多进程并发执行对资源利用效率的提高

我们以3个并发执行的进程为例说明多进程并发执行对资源利用效率的提高。如图5-10所示,假设有进程A、进程B和进程C的3个进程。每个进程都由输入数据、处理数据和输出数据3个子进程组成,3个进程的3个子进程分别表示为Ai、Ac、Ao,Bi、Bc、Bo和Ci、Cc、Co。在CPU的时间片t2时,进程A的Ac子进程和进程B的Bi子进程同时运行,由于此时Ac子进程只需要CPU资源,不需要输入设备资源,而Bi子进程只需要输入设备资源,不需要CPU资源,所以不会产生矛盾。在CPU的时间片t3时,进程A的Ao子进程、进程B的Bc子进程和进程C的Ci子进程同时运行,由于此时Ao子进程只需要输出设备资源,Bo子进程只需要CPU资源,Ci子进程只需要输入设备资源,所以不会产生矛盾。显然,t3时刻,计算机系统的输入设备资源、CPU资源和输出设备资源都同时得到了利用,因此,多道程序的并发执行可以提高计算机系统资源的利用效率。

图5-10 多道程序的并发执行