二、操作系统之进程
1、进程的定义、组成、组织形式及特征
1.1 前驱图:是一个有向无循环图,记为DAG。用于这种图可以描述多个程序或进程之间的执行顺序关系。
- 〇 表示一个程序、进程或是语句的结点。
- → 表示结点间的执行顺序。
- 前趋关系“→ ”的形式化描述:→ ={<Pi, Pj> | Pi must complete before Pj may start}
<Pi, Pj>∈→,可写成Pi→Pj,表示在Pj开始执行之前Pi必须完成。此时称 Pi 是 Pj 的直接前驱,而称 Pj 是 Pi 的直接后继。在前驱图中把没有前驱的结点称为初始结点(Initial Node),把没有后继的结点称为终止结点 (Final Node)。此外,每个结点还具有一个重量(Weight),用于表示该结点所含有的程序量或程序的执行时间。
下图举例一个具有9个节点的前驱图:
存在如下前驱关系:
P1→ p2,P1→ p3,P1→ p4,P2→ p5,P3→ p5,P4→ p6,P4→ p7,P5→ p8,P6→ p8,P7→ p9,P8→ p9
注意:前驱图中不能存在循环,否则必然会产生不可能实现的前驱关系
例如: 如下关系就不可能实现
程序并发执行时前驱图如下:
2、进程的状态与转换
2.1 进程的五种基本状态及转换
2.2 挂起操作和进程状态的转换
- 进程不能立即执行
- 进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。
- 为阻止进程执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也可以是父进程或操作系统。
- 除非代理显示地命令系统进行状态转换,否则进程无法从这个状态中转移。