计算机考研
计算机软考高级

进程的概念

一、程序的顺序执行

一个具有独立功能的程序独占CPU运行,直到获得最终结果的过程称为程序的顺序执行。在单道程序设计环境中(任何时候内存仅存放一个程序运行),程序总是顺序执行的。程序的顺序执行具有以下三个特点:

  1. 顺序性。程序的各部分都能严格按照程序所规定的逻辑次序顺序地运行。
  2. 封闭性。程序一旦开始运行,其运行结果只取决于程序本身,除人为改变计算机运行状态或发生几起故障外,不受外界因素的影响。
  3. 可再现性。当一个程序以相同的初始条件重复执行时,必将获得相同的运行结果。

单道程序的顺序性、封闭性和可再现性,给程序的编制、调试带来了极大的方便,但缺点是CPU与外部设备之间不能并行工作,资源利用率低,计算机系统效率不高。

二、程序的并发执行

在计算机硬件引入通道和终端机制后,就使得CPU与外部设备之间,以及外部设备与外部设备之间可以并行操作,使得多道程序设计成为可能。从宏观上看,多个程序可以同时运行,从微观上看它们是在交替执行(对单个CPU而言)。

如果多个程序在执行时间上是重叠的,即使这种重叠很小,也称这些程序是并发执行的。注意,在多道程序设计环境下,多个程序可以在单CPU上交替执行,也可以在多个CPU上并行执行。程序的并发执行通常是指多个程序在单个CPU上交替执行

对单CPU系统而言,在一段时间内可以有多个程序在同一个CPU上运行,但任一时刻只能有一个程序占用CPU运行。因此,多道程序的并发执行是指多个程序在宏观上的并行,微观上的串行

程序的并发执行实质上是程序间的并发,CPU与I/O设备之间的并行。

多道程序环境下程序并发执行的特性:

  1. 间断性。
  2. 失去了封闭性。
  3. 不可再现性。不可再现性除指并发程序的运行结果不确定外,还指并发程序的执行速度和运行轨迹也是不确定的。

三、进程

1、进程的定义

1978年,我国操作系统方面的研究人员在庐山召开的全国操作系统学术会议上,对进程给出如下定义:进程是一个可执行的、具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位(注:现在“保护”已改为“调度”)。

2、进程的结构

我们把操作系统中更具体、更形象的进程称为进程实体。需说明的是,很多情况下我们并不严格区分进程和进程实体。

通常的程序是不能并发执行的。为了使程序及它所要处理的数据能独立运行,应为之配置一个数据结构,用来存储程序向前推进的执行过程中所要记录的有关运行信息,即该进程动态执行的相关资料。这个数据结构称为进程控制块,即PCB(Process Control Block)。由此得到:

进程实体 = 程序块 + 相关数据段 + PCB

在组成进程的这三部分中,程序段即用户所执行的语句序列是必须有的。相关数据段是指用户程序要处理的数据,数据量可大可小。需要说明的是,有些进程的数据是包含在程序中的,这时就没有相关数据段。由于PCB包含进程执行的相关资料,所以必须通过PCB才能了解进程的执行情况。

3、进程的特征

进程作为系统中的一个实体,具有以下5个特征:

  1. 动态性。进程的是指是程序的一次执行,因此进程是动态的。既然是一次执行,就表明进程有生命周期,具有“创建——运行——消亡”这样一个过程。
  2. 并发性。多个进程实体在一段时间内能够并发执行。引入进程的目的也正是为了使内存中的多个程序能够在执行时间上重叠,以提高系统资源的利用率。
  3. 独立性。每个进程都是一个独立运行的基本单位,也是系统进行资源分配和调度的基本单位。
  4. 异步性。各进程按各自独立的、不可预知的速度向前推进。对单CPU系统而言,任何时刻只能有一个进程占用CPU,进程获得了所需要的资源即可执行,得不到所需资源则暂停执行。因此,进程具有“执行——暂停——执行”这种间接性活动规律。
  5. 结构性。为描述和记录进程运行的变化过程,满足进程独立运行的要求以及能够反映、控制并发进程的活动,系统为每个进程配置了一个进程控制块PCB。因此,从结构上看,每个进程都由程序段、数据段以及PCB这三部分组成。

4、进程与程序的区别

  1. 程序是指令的有序集合,是一个静态的概念,其本身没有任何运行的含义;进程是程序在CPU上的一次执行过程,是一个动态的概念。
  2. 程序作为软件资料可以长期保存;而进程则有生命期,它因创建为诞生,因调度而执行,因得不到资源而暂停执行,因撤销而消亡。
  3. 进程是一个独立运行的基本单位,也是系统进行资源分配和调度的基本单位;而程序作为静态文本既不运行,也不分配和调度。
  4. 进程与程序之间无一一对应关系。既然进程是程序的一次执行,那么一个程序的多次执行可以产生多个进程,而不同的进程也可以包含同一个程序。
  5. 程序是记录在介质(如磁盘)上指令的有序集合,而进程则由程序段、数据段和PCB这三部分组成。
未经允许不得转载:非常任务 » 进程的概念