进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。
1.支撑功能
该功能是提供给OS其它众多模块所需要的一些基本功能,以便支撑这些模块工作。其中三种最基本的支持功能是:中断处理、时钟管理和原语操作。
所谓原子操作,是指一个操作中的所有动作要么全做,要么全不做。换言之,它是一个不可分割的基本单位,因此,在执行过程中不允许被中断。原子操作在管态下执行,常驻内存。
2.进程的创建
允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,而把被创建的进程称为子进程。子进程可继续创建更多的孙进程,由此便形成了一个进程的层次结构。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。此外,在撤销父进程时,必须同时撤销其所有的子进程。
(1)申请空白 PCB,为新进程申请获得唯一的数字标识符,并从 PCB 集合中索取一个空白PCB。
(2)为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O 设备和CPU时间等。
(3)初始化进程控制块(PCB)。 PCB的初始化主要包括初始化标志信息、初始化处理机状态信息和初始化处理机控制信息,以及设置进程的优先级等。
(4)如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
3.进程的终止
①正常结束:表示进程的任务已完成,准备退出运行。在任何系统中,都应有一个用于表示进程已经运行完成的指示。
②异常结束:是指进程在运行时发生了某种异常事件,使程序无法继续运行。如存储区越界错、保护错、非法指令、特权指令错、运行超时、算术运算错、I/O故障等。
③外界干预:指进程应外界的请求而终止运行。如操作员或操作系统干预、父进程请求和因父进程终止等。
如果系统中发生了要求终止进程的某事件,OS便调用进程终止原语,按下述过程去终止指定的进程:
(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。
(2)若被终止进程处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。
(3)若该进程还有子孙进程,则应将其所有子孙进程也都予以终止,以防它们成为不可控的进程。
(4)将被终止进程所拥有的全部资源或者归还给其父讲程,或者归还给系统。
(5)将被终止进程(PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。
3.进程的阻塞与唤醒
(1) 向系统请求共享资源失败。
...无
登录后开始许愿
加油