文章目录
2.1 前驱图和程序执行
在单道批处理系统和早期未配置OS的计算机系统中,程序的执行方式是顺序执行,即在内存中仅装入一道程序,由它独占系统的所有资源;在多道程序系统中,由于内存中可以同时装入多个程序,它们可以共享系统资源、并发执行,这显然可以克服上述缺点
2.1.1 前驱图
所谓前趋图(precedence graph),是指一个有向无环图(directed acyclic graph,DAG),它用于描述进程之间执行的先后顺序。图中的每个节点均可用于表示一个进程或一段程序,甚至是一条语句,节点间的有向边则表示两个节点之间所存在的偏序(partial order)或前趋关系(precedence relation)
- 有向无循环图,用于描述进程之间执行的先后顺序
- 结点表示进程或程序段,有向边表示前趋关系
2.1.2 程序顺序执行
1、程序顺序执行的特征
程序顺序执行的顺序性、封闭性和再现性给程序的编制、调试带来很大方便,其缺点是
计算机系统效率不高。
2.1.3 程序并发执行
1、程序并发执行的定义
一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始执行;或一个程序未执行完,将开始执行另一个程序。
2、程序并发执行的例子

3、程序并发执行的特征
- 间断(异步)性:“走走停停”,一个程序可能走到中途停下来,失去原有的时序关系;
- 失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不变特征。
- 失去可再现性:失去封闭性 ->失去可再现性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。并发程序执行的结果与其执行的相对速度有关,是不确定的。
2.2 进程的描述
2.2.2 进程的定义与特征
1、进程的引入
为了使多道程序能够并发执行,且为了能对并发执行程序加以描述和控制,以提高资源利用率和系统效率。
2、进程的定义
- 进程是具有独立功能的程序关于某个数据集合在计算机系统中的一次执行过程。
- 系统进行资源分配和调度的、一个可并发执行的独立单位。
- 进程是程序的一个实例,是程序的一次执行
进程和程序的比较
- 程序是静态的,在外存中,进程是动态的,在内存中
- 程序可长期保存;而进程是有生命周期的。
- 程序是指令的有序集合;而进程则是由程序、数据和进程控制块三部分组成。
- 进程和程序之间不是一一对应的:一个进程可以执行一个或多个程序,一个程序可以同时被多个进程执行。
- 进程是一个独立运行的单位,也是系统进行资源分配和调度的独立单位,能与其他进程并发执行;而程序不能并发执行。
3、进程的特征
- 结构特征:由程序段、数据段及进程控制块(PCB)三部分构成,总称“进程映像”。