第二章进程管理-进程状态

进程的基本概念

进程的顺序执行特征:顺序性、封闭性、可再现性

前趋图:是一个有项的无循环图DAG,描述进程之间执行的前后关系,每个节点可用于描述一个程序或进程,结点间的有向边则用于表示两个结点之间存在的偏序,图中必须不存在循环


程序并发执行的特征:间断性、失去封闭性、不可再现性


进程特征

结构特征:为使程序并发执行,配置一进程控制块,PCB(process Control Block) 由程序段、相关的程序段和pcb三部分组成。

动态性:进程的实质是进程实体的一次执行过程,由创建而产生,调度而执行,撤销而消亡。

并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。

独立性:进程实体是一个独立运行、独立分配资源和独立接受调度的基本单位,没有PCB的程序都不能作为一个独立的单位参与运行。

异步性:进程按各自独立的、不可预知的速度向前推进,

            1、进程是程序的一次执行

            2、进程是一个程序及其数据在处理机上顺序执行时发送的活动

            3、进程是程序在一个数据集合上运行的过程,是系统进程资源分配和调度的一个独立单位

进程的三种基本状态

    1、就绪状态:进程已分配到除cpu意外的所有必要资源,只需要获得cpu就可以执行

    2、执行状态:进程已经获得cpu

    3、阻塞状态:正在执行的进程由于发送某事件无法继续执行,便放弃处理机而处于暂停状态,就是进程的执行受到阻塞,典型的事件有请求I/O、申请缓冲空间等,分配了处理机之后,该进程便可执行由就绪状态转变为执行状态




挂起状态的原因:终端用户的请求、父进程请求、负荷调节的需要、操作系统的需要

挂起状态又称为禁止状态,非挂起状态又称为活动状态

活动就绪➡️静止就绪:未被挂机的就绪状态,称为活动就绪状态Readya,挂起原语Suspend挂机该进程后,进程便转为静止就绪状态Readys,该进程不会再被调度执行

静止就绪➡️活动就绪

活动阻塞➡️静止阻塞 、静止阻塞➡️活动阻塞




创建状态

1、为一个新进程创建PCB、填写必要的管理信息

2、把该进程转入就绪状态,插入到就绪队列中

3、进程所必须的资源尚未全部分配,此时的进程已经拥有自己的PCB,但进程还未进入主存,即创建工作尚未完成,进程还不能被调度,所处的状态就是创建状态

4、PCB初始化工作完成后,进程状态便可由创建状态转入就绪状态

终止状态:等待操作系统进行善后处理,然后将PCB清零,将PCB空间返还系统





进程控制块

是操作系统中最重要的记录型数据结构,PCB常驻内存

1、进程标识符:唯一的标识一个进程,内部标识符和外部标识符

2、处理机状态:由处理机的各种寄存器中的内容组成,通用寄存器、指令计数器、程序状态字PSW、用户栈指针

3、进程调度信息:进程状态、进程优先级、事件

4、进程控制信息:程序和数据的地址、进程同步和通信机制、资源清单、链接指针


进程控制块的组织方式:链接方式、索引方式


进程控制

原语Primitive   由若干条指令组成,用于完成一定功能的一个过程,原子操作,指一个操作中的所有动作要么全做,要么不做,是一个不可分割的基本单位


进程的创建

进程图:描述一个进程的家族关系的有向树

引起进程创建的事件:用户登陆、作业调度、提供服务、应用请求


进程的创建过程

1、申请空白PCB

2、为新进程分配资源

3、初始化进程控制块

4、将新进程插入就绪队列


进程的终止

引起进程终止的事件:

正常结束、

异常结束:越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、io故障

外界干预:操作员或操作系统干预、父进程请求、父进程终止




进程的终止过程

1、根据被终止进程的标识符,从PCB集合中检索的PCB,读取该进程的状态

2、将终止进程正处于执行状态,应立即终止该进程的执行,置调度标志为真

3、如果有子孙进程,将所有的子孙进程予以终止,以防成为不可控的进程

4、将终止进程的资源,归还父进程或系统

5、将被终止进程PCB从所在队列或链表中移除


引起进程的阻塞与唤醒的事件

1、请求系统服务

2、启动某种操作

3、新数据尚未到达

4、无新工作可做


进程阻塞过程

进程通过调用组设原语block把自己阻塞,阻塞是一种主动行为。进入block过程后,停止进程执行,修改进程控制块中的状态,将PCB插入阻塞队列。


进程唤醒过程

当阻塞进程所期待的事件出现时,调用唤醒原语wakeup(),将等待改事件的进程唤醒。

执行过程:

首先把被阻塞的进程从等待该事件的阻塞队列中移除,

修改PCB中的现行状态由阻塞改为就绪

将该PCB插入到就绪队列


进程的挂起

出现引起进程挂起的事件时,系统将利用挂起源于suspend()将指定进程或处于阻塞状态的进程挂起

挂起过程:

检查被挂进程的状态,处于活动就绪状态改为静止就绪,,活动阻塞的改为静止阻塞,

把该进程的PCB复制到知道的内存区域,

若被挂起的进程正在执行,则转向调度程序重新调度


进程的激活过程

当激活事件发生时,

内存由足够的空间时

系统将利用激活原语active()将指定进程激活

激活原语先将进程从外存调入内存,

检查该进程的现行状态,若是静止就绪改为活动就绪,静止阻塞改为活动阻塞,




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值