前趋图和程序执行
前驱图
有向无循环图,记为DAG(Direct Acyclic Graph),用于描述进程之间执行的先后顺序。
进程间前趋关系用→表示,若进程Pi Pj存在Pi → Pj,表示在Pj开始执行前Pi必须完成。
直接前驱:此时Pi是Pj的直接前驱
直接后继:此时Pj是Pi的直接后继
初始结点:没有前驱的节点
终止结点:没有后继的节点
结点的重量:用于表示该节点所含有的程序量或程序的执行时间
程序顺序执行
程序的顺序执行就是仅当前一操作(程序段)执行完后,才能执行后继操作。
程序顺序执行特征:
1.顺序性
2.封闭性
3.可在现性
程序并发执行(如果是并发的那么就没有前驱后继关系)
例:一个作业分为输入程序(Ii),计算程序(Ci),打印程序(Pi)三部分,存在前趋关系Ii → Ci → Pi,只能顺序执行。但c1和I2可以并发执行。
程序并发执行特征:
1. 间断性:当计算完成了C1后,输入程序I2尚未完成,计算程序C2必须暂停运行。
2. 失去封闭性:并发运行程序时,系统中资源被共享,资源的状态由这些程序来改变。
3. 不可再现性:程序并发执行时,由于失去了封闭性,导致其又失去了可再现性。
进程的描述
引入进程的目的: 为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,引入了“进程”的概念。
引入进程控制块的目的: 为了使参与并发执行的程序都能独立地运行,在操作系统中必须为之配置一个专门的数据结构——进程控制块(PCB)。
进程实体:进程实体由程序段、相关的数据段和PCB构成
进程:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的特征
1.动态性(进程与程序最本质的区别)
2.并发性
3.独立性
4.异步性
进程三种基本状态
就绪:程序只要获得CPU使用权,便可执行
执行:程序已经获得CPU,正在被执行
阻塞:正在执行的进程由于发生某事件,无法继续执行
三态转换(三态图)
五态(三态+创建+终止)
创建:
1. 申请空白PCB
2. 向PCB中填写控制管理进程信息
3. 分配运行时所需的资源
4. 插入就绪队列
终止:
等待操作系统善后处理,最后将PCB清零,并将PCB返还系统。
(五态图)
七态(五态中就绪,阻塞分为活动和静止状态;引入了挂起,激活)
引入挂起(把内存中的进程放到外存中去)
挂起操作引入原因:
1.终端用户希望暂停;
2.父进程请求,希望挂起某个子进程;
3.系统负荷过重,挂起一些不重要进程;
4.操作系统为方便检查资源使用情况或进行记账;
(进程5状态转换图)
进程管理中的数据结构
进程控制块PCB
PCB的作用:
1.作为独立运行基本单位的标志
2.能实现间断性运行方式
3.提供进程管理所需的信息
4.提供进程调度所需的信息
5.实现与其他进程的同步与通信
PCB中的信息:
1.进程标识符(对应着PCB作用中的作为独立运行基本单位的标志)
外部标识符:字母数字构成
内部标识符:唯一数字标识
2.处理机状态(对应着PCB作用中的能实现间断性运行方式)
(1)通用寄存器(R1,R2,...):用户程序可以访问的,用于暂存信息的用户可视寄存器。
(2)指令计数器(PC):存放了要访问的下一条指令的地址。
(3)程序状态字(PSW):状态信息,如条件码、执行方式、中断屏蔽标志等。
(4)用户栈指针(SP):存放过程或系统调用参数及调用地址。
3.进程调度信息(对应着PCB作用中的提供进程调度所需的信息)
(1)进程状态(就绪?阻塞?挂起?)(进程调度的依据)
(2)进程优先级
(3