1、前趋图和程序的顺序执行
前趋图是一个有向无环图 (DAG-Directed Acyclic Graph),用于描述进程之间执行的前后关系。
结点:描述一个程序段或进程或一条语句
有向边:结点之间的前趋关系“”
Pi Pj:Pi 必须在 Pj 开始之前完成, Pi是Pj的直接前趋,Pj是Pi的直接后继
2、进程的描述
经典定义:
- 进程是程序的一次执行。
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
定义:
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
进程的定义和特征
动态性 进程实体的执行过程,最进本的特征
并发性 进程引入的重要特征
独立性 独立运行、独立获得资源、独立接收调度
异步性 异步方式运行,各自独立,速度不可预知
进程和程序的区别
- 进程是动态的,程序是静态的
- 进程是暂时的,程序是永久的
- 进程与程序的组成不同
- 进程与程序无一一对应关系
进程的基本状态及转换
(1)进程的三基本状态-三态模型
•执行态(running):进程占有处理器正在运行。
•就绪态(ready):进程具备运行条件,等待系统分配处理器以便运行。
•阻塞态(block):又称为等待(wait)态或睡眠(sleep)态,进程不具备运行条件,正在等待某个事件的完成。
(2)引起进程状态转换的具体原因
- 运行态→阻塞态:等待使用资源或某事件发生;
- 阻塞态→就绪态:资源得到满足或事件发生;
- 运行态→就绪态:运行时间片到;出现有更高优先权进程。
- 就绪态→运行态:CPU空闲时选择一个就绪进程。
(3)五态模型
五态模型在三态模型的基础上引进了创建态和终止态。
创建态—对应进程刚被创建的状态。保证进程的调度必须在创建工作完成后进行。
终止态—进程的终止状态。首先,等待操作系统进行善后,然后,退出主存。
进入终止态的进程不再执行,但依然临时保留在系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程。
(4)为什么要有“挂起”状态?
(1)终端用户的需要
(2)父进程请求
(3)负荷调节的需要
(4)操作系统的需要
系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。
进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。
注意挂起进程:
• 该进程不能立即被执行。
• 挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。
• 进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。
• 结束进程挂起状态的命令只能通过操作系统或父进程发出。
(5)挂起操作和进程状态的转换
•挂起就绪态(ready suspend:表明进程具备运行条件但目前在辅助存储器中,当它被对换到主存才能被调度执行。
•挂起等待态(blocked suspend:表明进程正在等待某一个事件且在辅助存储器中。
(6)进程管理中的数据结构
进程控制块及其作用
存放进程的管理和控制信息的数据结构称为进程控制块。它是管理和控制的进程最重要的数据结构,在创建时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消。PCB就象我们的户口。
进程控制块是进程存在的唯一标志。
系统的所有PCB组织成链表或队列,常驻内存的PCB区。
进程控制块中的信息
进程标识符
用于唯一识别一个进程,包括外部标识符和内部标识符。
处理机状态
主要由处理机的各种寄存器中的内容组成,包括通用寄存器,指令计数器,程序状态字PSW,用户栈指针
进程调度信息
包括进程状态,进程优先级,进程调度所需的信息(进程执行的时间总和等),事件(阻塞原因)
进程控制信息
包括程序和数据的地址,进程同步和通信机制,资源清单,链接指针