进程管理
1.进程的描述
1.1进程的定义
1)进程是一个程序的一次执行。
2)进程是一个程序及其数据在处理机上顺序执行发生的活动。
3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
1.2进程的特征(具有PCB结构 )
1)动态性。进程实际上是进程实体的执行过程,因此,进程实体具有一定的生命期,而程序则只是一组有序指令的集合,是静态的。
2)并发性。多个进程实体同存于内存中,且能在一段时间内同时运行。
3)独立性。进程实体是一个能独立运行、独立获得资源和独立接收调度的基本单位。
4)异步性。进程是按照异步性方式进行的,即按各自独立的、不可预知的速度向前推进。
1.3 进程状态
1.3.1进程的三种基本状态
1)就绪状态。这是指进程已处于准备好运行的状态,即已分配到除CPU以外的必要资源,只要再获得CPU,就执行。
2)执行状态。进程已经获得CPU,正在执行中。
3)阻塞状态。这是指正在执行中的进程由于发生某件事(如:I/O请求、申请缓冲区失败)暂时无法继续执行的状态,亦即进程的执行收到阻塞。
1.3.2三种基本状态之间的转换图
进程在运行的过程中经常会发生状态的转换。
1.3.3创建状态和终止状态
进程是由创建而产生的,创建进程有多个步骤构成,如:首先申请一个空白PCB,并向PCB中填写用于控制和管理进程的信息,引入创建状态是为了保证进程的调度必须在创建工作完成后进行。
进程的终止状态要通过两个步骤:首先,是等待操作系统进行善后处理,最后将PCB清零,并将空白的PCB空间返回系统。
1.3.4 挂起操作
由于终端客户在自己程序运行期间发现有可疑问题,希望暂停自己程序的使用,以便修改;或者说,有时父进程有时想要挂起自己的某个子进程,以便考查和修改等原因,系统中开始引入挂起操作。
如进程状态所示,所谓的挂起状态,是三种基本的进程状态遇到其他需求时,需要暂停,对程序进行修改或者检查的时候,一种暂时等待的模式,等到问题解决后,再继续执行后续的进程。
1.4 进程管理中的数据结构
1.4.1 操作系统管理控制的数据结构
内存表、设备表、文件表和用于进程管理的进程表(PCB)
1.4.2 PCB的作用
1)作为独立运行基本单位的标志,取得了OS服务的权利,系统是通过PCB感受进程的存在的。
2)能实现间断性运行方式,程序是采用停停走走间断性的运行方式运行的,当进程因为阻塞而暂停运行的时候,它必须保留自己运行时的CPU现场信息,以便再次调度时候,恢复现场信息。
3)提供进程管理所需要的信息,当调度程序调度到某进程运行的时候,只能根据PCB中记录的程序和数据在内存或外存中的初始指针,找到相应的程序和数据。
4)提供进程调度所需要的信息,只有处于就绪状态的进程才可以被调度执行,PCB中提供了进程出于何种状态下的信息。
5)实现与其他进程的同步与通信,实现诸进程的协调运行。
1.4.3 PCB中的信息
1)进程标识符,用于唯一地标识一个进程,其外部标识符是为了方便用户对进程的访问,内部标识符是为了方便系统对进程的使用。
2)处理机状态,处理机状态信息主要有处理机的各种寄存器中的内容组成,当处理机处于执行状态的实惠,正在出来的许多信息都放在寄存器中,当进程被切换的时候,处理机状态信息都必须保存在相应的PCB中。
3)进程调度信息,当操作系统进行调度的时候,必须了解进程的状态亦即有关进程调度的信息,如:进程优先级、阻塞原因等。
4)进程控制信息,包括:程序和数据的地址、进程同步和通信机制、资源清单、链接指针。
1.4.4 PCB的组织方式
1)线性方式(所有的PCB都组织在一张线性表)
2)链接方式(把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列)
3)索引表(根据进程状态的不同,建立几张索引表)
2. 进程控制
2.1进程的创建
2.1.1进程的层次结构
在操作系统中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,把被创建的进程称为子进程,子进程可以创建更多的孙进程。进程之间的这种关系十分重要,因为子进程可以继承父进程所拥有的资源,当子进程被撤销的时候,要将从父进程那里获得的资源归还给父进程,而且要撤销父进程,同时必须撤销子进程。
2.1.2 引起创建进程的典型事件
1)用户登录。在分时系统中,用户在终端键入登录命令后,若登录成功,就会创建一个进程。
2)作业调度。当调度程序调度作业时,将它们装入内存中,为它们创建进程。
3)提供服务。当用户提出某种服务请求的时候,系统将专门创建一个进程提供服务,如:打印。
4)应用请求。用户进程自己创建的新进程,以便新进程同以同创建者进程并发运行的方式完成特定的任务。
2.1.3 进程的创建
1)申请空白的PCB
2)为新进程分配其运行所需要的资源,包括物理和逻辑资源,新进程对资源的需求要告知OS或者父进程。
3)初始化PCB:初始化标识信息,初始化处理机状态信息,初始化 处理机控制信息。
4)如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
2.2 进程的终止
2.2.1 引起进程终止的事件
1)正常结束,表示进程的任务已经完成,准备退出运行。
2)异常结束,进程运行时,遇到了某种异常事件,使程序无法执行。
3)外界干预,进程的外界请求而终止运行。
2.2.2进程的终止过程
1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态;
2)若被终止程序正处于执行状态,应立即种植该进程的执行,并置调度标志为真;
3)若该进程还有子孙进程,予以停止。
4)将被终止进程所拥有的全部资源归还给父进程或OS;
5)将被终止进程(PCB)从所在队列中移除,等待其他程序来搜集信息。