您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第3讲进程管理之进程控制
第三讲进程管理之进程控制上一讲,我们讲了前趋图和进程的基本概念,包括进程的定义,进程的描述,其中有进程的三种基本状态及其转换,还有PCB及其组成和组织方式。上一讲主要是一些基本概念的引入,这讲我们来了解,具体怎样对进程控制和管理的。补充:处理机的执行状态为防止OS及其关键数据(如PCB等)不被用户有意或无意破坏,通常将处理机的执行状态分为两种处理机状态特权(执行指令,访问)程序系统态(核心态)较高(一切指令,所有R及存储区)OS内核用户态较低(规定指令,指定R及存储区)用户程序cobegin和coend括起来表示这n个语句是可以并发执行的。co是concurrent的头两个字符。其他的语法就是PASCAL语法。进程管理的一个重要任务就是进程控制。一、什么是进程控制?就是系统使用一些具有特定功能的程序段来创建、撤销进程以及完成各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。这些具有特定功能的程序段,就是操作系统内核。进程控制一般是由操作系统的内核来实现,内核在执行操作时,往往是通过执行各种原语操作来实现的。操作系统内核:是加在硬件上的第一层软件,通过执行各种原语操作来实现各种控制和管理功能,具有创建进程、撤消进程、进程通信、资源管理的功能。同时把它们常驻内存,以提高OS的运行效率,这部分功能模块就称OS的内核。内核是基于硬件的第一层软件扩充。二、进程的创建一)一些概念1、进程图(ProcessGraph)进程图是用于描述进程家族关系的有向树。进程图说明:结点代表进程,一棵树表示一个家族,根结点为该家族的祖先。子进程可以继承父进程拥有的资源,子进程撤销时,还给父进程这些资源。父进程撤销时,同时要撤销其所有的子进程。注意:进程图和前趋图之间的区别前趋图描述的是任务(或进程)之间的前趋关系;只有在前趋进程完成后,其后继进程才能运行;进程图中,描述的进程的进程关系。创建者和被创建者可以并发执行,也可以是父进程等待其所有的子进程结束后再执行,这完全取决于创建原语和创建者的需要。2、原语:是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性。即原语的执行必须是连续的,在执行过程中不允许被中断,在操作系统中,它是不可分割的基本单位。原来就是程序段,别被新名字吓倒了。二)进程创建1、进程创建原语:进程创建是调用创建原语来实现。创建原语扫描系统的PCB链表,在找到一定PCB链表之后,填入调用者提供的有关参数(这些参数包括:进程名、进程优先级P0、进程正文段起始地址d0、资源清单R0等),最后形成代表进程的PCB结构。2、从这个原理我们可以得到以下几点:1)创建原语功能:创建一个具有指定标识符进程2)入口信息:进程标识符、优先级、进程开始地址、初始CPU状态、资源清单等3)实现过程:如下图创建原语流图三、进程撤销(终止)1、引起进程撤销的原因:(1)正常终止:该进程已完成所要求的功能而正常终止。(2)异常结束:由于某种错误导致非正常终止。(3)外界干预:祖先进程要求撤消某个子进程。2进程撤销过程:1)撤销过程原语:撤消原语首先检查PCB进程链或进程家族,寻找所要撤消的进程是否存在。如果找到了所要撤消的进程的PCB结构,则撤消原语释放该进程所占有的资源之后,把对应的PCB结构从进程链或进程家族中摘下并返回给PCB空队列。如果被撤消的进程有自己的子进程,则撤消原语先撤消其子进程的PCB结构并释放子进程所占用的资源之后,再撤消当前进程的PCB结构和释放其资源。2)入口信息:被撤消的进程名、进程标识符。3)实现过程:撤销原语流图说明:进程被撤消,进程都必须释放它所占用的各种资源和PCB结构本身,以利于资源的有效利用。当然,一个进程所占有的某些资源在使用结束时可能早已释放。四、进程的阻塞和唤醒1、引入进程的创建原语和撤消原语完成了进程从无到有,从存在到消亡的变化。被创建后的进程最初处于就绪状态,然后经调度程序选中后进入执行状态。有关进程调度部分将放在下一章中详述,现在我们讲实现进程的执行状态到等待状态的原语即阻塞原语,和由等待状态到就绪状态转换的原语即唤醒原语。2、引起进程阻塞和唤醒的事件1)请求系统服务当正在执行的进程请求操作系统提供服务时,由于某种原因,操作系统不立即满足进程的要求时,该进程只能转变为阻塞状态来等待。例,当进程申请打印机时,打印机正被其他进程占用,则该进程转变为阻塞状态。2)启动某种操作当进程启动某种操作后,如果该进程必须在该操作完成之后才能继续执行,则必须先使进程阻塞。例如:进程启动了某个I/O设备,如果只有在I/O设备完成了指定的任务后,进程才能继续,则该进程在启动I/O设备后,要进入阻塞状态。注意,这里强调的是只有I/O设备完成了指定的任务,进程才能继续。3)新数据未到达对于相互合作的进程,如果其中一个进程需要先获得另一个进程提供的数据后,才能执行,则只要所需数据未来,就阻塞等待。4)无新工作可作具有特定功能的系统进程,每当这种进程完成任务后,自己便阻塞起来等新任务的到来。如,系统的发送进程,主要工作就是发送数据,发完数据后,若无新的发送请求,则阻塞。3、进程阻塞1)阻塞原语:当发生引起阻塞的事件时,该原语被该进程自己调用来阻塞自己。阻塞原语在阻塞一个进程时,由于该进程正处于执行状态,故应先中断处理机和保存该进程的CPU现场。然后将被阻塞进程置“阻塞”状态后插入等待队列中,再转进程调度程序选择新的就绪进程投入运行。注意:进程阻塞是进程的主动行为。也就是自己阻塞自己2)入口信息:可省3)实现过程:阻塞原语流图14)进程唤醒1)唤醒原语:当等待队列中的进程所等待的事件发生时,等待该事件的所有进程都将被唤醒。一个处于阻塞状态的进程不可能自己唤醒自己。唤醒一个进程有两种方法:一种是由系统进程唤醒。另一种是由事件发生进程唤醒。当由系统进程唤醒等待进程时,系统进程统一控制事件的发生并将“事件发生”这一消息通知等待进程。从而使得该进程因等待事件已发生而进入就绪队列。等待进程也可由事件发生进唤醒。由事件发生进程唤醒时,事件发生进程和被唤醒进程之间是合作关系。因此,唤醒原语既可被系统进程调用,也可被事件发生进程调用。我们称调用唤醒原语的进程为唤醒进程。唤醒原语首先将被唤醒进程从相应的等待队列中摘下,将被唤醒进程置为就绪状态之后,送入就绪队列。在把被唤醒进程送入就绪队列之后,唤醒原语既可以返回原调用程序,也可以转向进程调度,以便让调度程序有机会选择一个合适的进程执行。2)入口信息:被唤醒进程的名字3)实现过程:唤醒原语流图五、进程的挂起和激活不详细讲,自己看一下。1、挂起:有活动状态进程变为静止状态。2、激活:由静止状态进程变为活动状态
本文标题:第3讲进程管理之进程控制
链接地址:https://www.777doc.com/doc-2194123 .html