进程管理
进程的引入
程序的顺序执行及其特征
程序的执行
在未配置OS的系统中,程序是顺序执行的
通常把应用程序分成若干程序段,在各程序之间,按照某种先后顺序执行.
程序顺序执行的特征
1.程序执行的顺序性
2.程序环境的封闭性
3.程序结果的可再现性
程序的并发执行及其特征
并发执行
在多道程序环境下,允许多个程序并发执行
不同程序的输入,输出,处理可以并发执行
特征
1.间断性:多个程序的相互制约,在并发执行,具有“执行-暂停-执行”的间断性
2.失去封闭性:多个程序共享系统资源,其他程序可以改变一个程序环境中资源的状态,失去了封闭性。
3.不可再现性:由于失去封闭性,导致并发执行的程序出现不可再现性
为什么引入进程
1.在多道程序系统中,程序的并发执行失去封闭性,具有不可再现性的特征,这样,程序的并发执行已失去了意义。
2.并发性是OS的基本特征,是提高系统吞吐量、资源利用率的条件,谷引入进程概念
进程的特征与状态
进程的特征
程序相当于火车,进程相当于列车,程序是静止的,列车是运动的
1.结构特征:
进程=程序段+数据段+进程控制块PCB,PCB相当于列车时刻表,是一个大的记录型数据结构,以保留进程现场和进程控制信息
2.动态性:
进程是程序的一次执行过程,由创建而产生,因调度而执行,因阻塞而暂停,因撤销而消亡
3.并发性
由于PCB记录着进程所有的信息,OS可以根据PCB对并发执行的进程进行控制和调度,故多个进程可以在一段时间内同时运行
4.独立性
进程是独立的调度单位,资源分配单位
5异步性
进程按各自独立的,不可预知的速度向前推进
进程的定义
1.进程是程序的一次执行
2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动
3.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
4.进程的三种基本状态
(1)就绪态
(2)执行态
(3)阻塞态
进程控制块PCB
进程控制块中的作用
1.PCB是重要的数据结构,位于系统区,存放OS所需的,用于描述进程标识、控制信息、调度信息等所需要的全部信息
2.PCB是进程存在的唯一标识,系统根据PCB而感知相应进程的存在,OS是根据PCB来对并发执行的进程进行控制和管理的
PCB里的信息
1.进程标识符
2.处理机状态
3.进程调度信息
4.进程控制信息
PCB的组织方式
1.链接方式:空间利用率高,检索慢
2.索引方式:建立索引表,以空间换取时间,提高检索速度
进程控制
进程控制是由操作系统内核中的原语来实现的
原语:由若干条指令构成的“原子操作”,是一个不可分割的基本单位,不允许中断,原子操作在管态下执行,常驻内存。作为一个整体不可分割,要么全都完成,要么全都不做。
进程的创建
1.进程图
进程图是用于描述进程家族关系的有向树,图中的结点代表进程,边代表进程之间的关系。
进程家族的祖先称为树根。
进程树:
2.进程之间的关系的三层含义
1.子进程可继承父进程所拥有的资源
2.子进程撤销时应将其从父进程获得的资源归还给父进程
3.父进程撤销时必须同时撤销其所有子进程
为表示进程间的关系,在PCB中需要设置家族关系表项
3.进程的创建
1.申请空白PCB
2.为新进程分配资源
3.初始化PCB
4.将新进程插入就绪队列
调用者(或父进程)提供一组参数,在新建PCB中,会存放进程的所有调度信息等
进程的终止
1.引起进程终止的事件
1.正常结束
2.异常结束
3.外界干预
2.进程的终止过程
1.根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态
2.若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后,应重新进行调度
3.若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防成为不可控的进程
4.将被终止进程所拥有的全部资源,或者归还给其父进程,或者归还给系统
5.将被 终止进程的PCB,从所在队列(或链表)中移除
进程的创建原语与终止原语是一对相反的操作,标志着程序的一次执行。
进程的阻塞与唤醒
1.进程阻塞过程
进程阻塞是进程自身的一种主动行为
1.进入block过程后,将现行状态由“执行”改为“阻塞”,并将PCB插入阻塞队列
2.调度程序进行重新调度,将处理机分配给另一就绪程序,并进行切换
3.保留被阻塞进程的处理机状态,再按新进程的PCB中的处理机状态设置PCB的环境
2.进程唤醒过程
1.首先把被阻塞的进程从等待该事件的阻塞队列移出
2.将其PCB中的现行状态由阻塞改为就绪
3.然后再将该PCB插入到就绪队列中
进程的挂起与激活
1.挂起的执行过程
首先检查被挂起的进程状态
若处于活动就绪状态,便改为静止就绪
若处于活动阻塞状态,则改为静止阻塞
2.激活过程
激活原语先将进程从外存调入内存,检查该进程的现行状态:
若是静止就绪,便改为活动就绪
若是静止阻塞,便改为活动阻塞
进程互斥
两种形式的制约关系
1.间接相互制约关系,称为进程互斥
2.直接相互制约关系,称为进程同步
临界资源
指在一段时间内,只允许一个进程访问的资源
临界区
临界区:进程中访问临界的一段代码
进入区:在临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应“正在访问临界区”标志
退出区:用于将“正在访问临界区”标志清除
剩余区:代码剩余部分
同步机制应遵循的规则
空闲则入:其他进程均不处于临界区
忙则等待:已有进程处于其临界区
有权等待:等待进入临界区的进程不能“死等”
让权等待:不能进入临界区的进程,应释放CPU
信号量机制
整型信号量
最初把整型信号量定义为一个整型量,除初始化外,仅能通过两个标准的原子操作wait和signal来访问。P、V操作
记录型信号量
AND型信号量
1.将进程在整个运行过程中需要的所有资源,一次性全部的分配给进程,待进程使用完后再一起释放
2.要么全部分配到进程,要么一个也不分配
信号量集
1.前面讲的信号量操作,每次施以加1、减1操作,当进程一次需要N个某类资源时,便要执行N次wait(S)操作,显然是低效的。
2.有些情况下,当资源低于某个下限值时,便不予分配。
基于以上两点,信号量机制对AND信号量加以扩充,在每次分配前,都必须测试资源数量,看其是否大于其下限值,并可按要求一次性分配多个资源。