外观
一个具有独立功能的程序独占CPU运行,直到获得最终结果的过程称为程序的顺序执行。在单道程序设计环境中(任何时候内存仅存放一个程序运行),程序总是顺序执行的。程序的顺序执行具有以下三个特点:
单道程序的顺序性、封闭性和可再现性,给程序的编制、调试带来了极大的方便,但缺点是CPU与外部设备之间不能并行工作,资源利用率低,计算机系统效率不高。
在计算机硬件引入通道和终端机制后,就使得CPU与外部设备之间,以及外部设备与外部设备之间可以并行操作,使得多道程序设计成为可能。从宏观上看,多个程序可以同时运行,从微观上看它们是在交替执行(对单个CPU而言)。 如果多个程序在执行时间上是重叠的,即使这种重叠很小,也称这些程序是并发执行的。注意,在多道程序设计环境下,多个程序可以在单CPU上交替执行,也可以在多个CPU上并行执行。程序的并发执行通常是指多个程序在单个CPU上交替执行。 对单CPU系统而言,在一段时间内可以有多个程序在同一个CPU上运行,但任一时刻只能有一个程序占用CPU运行。因此,多道程序的并发执行是指多个程序在宏观上的并行,微观上的串行。 程序的并发执行实质上是程序间的并发,CPU与I/O设备之间的并行。 多道程序环境下程序并发执行的特性:
1978年,我国操作系统方面的研究人员在庐山召开的全国操作系统学术会议上,对进程给出如下定义:进程是一个可执行的、具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位(注:现在“保护”已改为“调度”)。
我们把操作系统中更具体、更形象的进程称为进程实体。需说明的是,很多情况下我们并不严格区分进程和进程实体。 通常的程序是不能并发执行的。为了使程序及它所要处理的数据能独立运行,应为之配置一个数据结构,用来存储程序向前推进的执行过程中所要记录的有关运行信息,即该进程动态执行的相关资料。这个数据结构称为进程控制块,即PCB(Process Control Block)。由此得到:
进程实体 = 程序块 + 相关数据段 + PCB
在组成进程的这三部分中,程序段即用户所执行的语句序列是必须有的。相关数据段是指用户程序要处理的数据,数据量可大可小。需要说明的是,有些进程的数据是包含在程序中的,这时就没有相关数据段。由于PCB包含进程执行的相关资料,所以必须通过PCB才能了解进程的执行情况。
进程作为系统中的一个实体,具有以下5个特征: