2.1前驱图和程序执行
2.11 前驱图
为了更好的描述程序的顺序和并发情况,我们先介绍用于描述程序执行先后顺序的前驱图。前驱图,是指一个有向无循环图,可记为 DAG(Directed Acyclic Graph),它用于描述进程之间执行的先后顺序。
具有节点的前驱图
具有循环的前驱图
2.1.2 程序顺序执行
1.程序的顺序执行
一个具有独立功能的程序独占处理机,直到得到最终的结果的过程
2.程序顺序执行时的特征
- 顺序性
- 封闭性
- 可再性
2.1.3 程序的并发执行
程序顺序执行时,虽然很方便,但系统的资源利用率很低。为此,在系统上引入了多道程序技术,是程序或程序段间能并发执行。
1.程序的并发执行
2.程序并发执行的特征
- 间断性
- 程序在并发执行时,由于他们共享系统资源,以及完成同一项任务而相互合作,致使在这些并发执行的程序之间形成了相互制约关系
- 相互制约将导致并发程序具有“执行——暂停——执行”这种间断性的活动规律
- 失去封闭性
- 当处理机已被分配给某个进程运行时,其他程序必须等待,显然,程序的运行已失去了封闭性
- 不可再现性
- 由于失去了封闭性,也将导致其又失去可再现性
上述情况说明,程序在并发执行时,由于失去了封闭性,其计算结果必将与并发程序的执行速度有关,从而使程序的执行失去了可再现性。换言之,程序经过多次执行后,虽然他们执行时的环境和除十条件相同,但得到的结果却各不相同。