您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 操作系统课件 进程与进程管理
操作系统第三章进程与进程管理第三章进程与进程管理3-1进程的引入3-2进程3-3进程调度3-4线程的基本概念3-5Linux的进程与进程管理3.1进程的引入3-1-1前趋图的定义前趋图(ProcedenceGraph)是一个有向无循环图(DAG)。图中的每个结点可用于表示一条语句、一个程序段或进程;结点间的有向边则表示在两结点之间存在的偏序或前趋关系“→”,→={(Pi,Pj)|Pi必须在Pj开始前完成}。3.1进程的引入3-1-2程序顺序执行定义程序在执行时,必须按照某种先后次序逐个执行,仅当前一操作执行完后,才能执行后继操作程序顺序执行的特征-程序执行的顺序性处理机的操作严格按程序规定的顺序执行,即只有前一操作结束后才能执行后继操作-程序执行的封闭性程序一旦开始运行,其执行结果不受外界因素的影响3.1进程的引入-程序执行结果的确定性程序执行的结果与它的执行速度、时间无关-程序结果的可再现性程序执行时的环境和初始条件相同,当程序多次重复执行时,都将获得相同的结果3-1-3程序并发执行定义在上图中的输入程序、计算程序和打印程序三者之间,存在着Ii→Ci→Pi这样的前趋关系,以致对一个作业的输入、计算和打印三个操作必须顺序执行,但并不存在Pi→Ii+1关系,因而在对一批程序进行处理时,可使它们并发执行3.1进程的引入程序并发执行特征-程序执行的间断性程序执行的相互制约将导致并发程序具有“执行—暂停执行—执行”这种间断性的活动规律-程序执行失去封闭性因多个程序共享系统中的资源,所以某程序在执行时必然会受到其他程序的影响-程序执行结果的不可再现性由于失去了封闭性,也将导致失去其可再现性-程序和计算不再一一对应程序和计算是两个不同的概念,在程序并发执行中一个共享程序可对应多个“计算”,程序与“计算”已不再一一对应3.1进程的引入3-1-4多道程序设计定义在采用多道程序设计的计算机系统中,允许多个程序同时进入一个计算机系统的主存储器并运行,这种让多个程序同时进入计算机计算的方法称为多道程序设计。目的提高处理器的效率,从而提高整个系统的效率必须解决的问题-存储保护与程序浮动-处理器的管理和调度-系统资源的管理和调度3.2进程3-2-1引入进程的原因为了使程序在多道程序环境下能够并发执行,并对并发执行的程序加以控制和描述,引入进程的概念程序段、数据段及进程控制块三部分构成了一个进程的实体3-2-2进程的概念进程的定义进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位”。或者说,“进程”是进程实体的运行过程。程序与进程的区别与联系-进程是程序的一次执行,是一个动态的概念,程序是完成某个特定功能的指令的有序序列,是一个静态的概念;一个进程可以执行一个或几个程序,同一程序也可能由多个进程同时执行3.2进程-进程是系统进行资源分配和调度的一个独立单位,程序则不是-程序可以作为一种软件资源长期保存,而进程是程序的一次执行过程,它是临时的,有生命期的-进程是具有结构的进程的特征动态性、并发性、独立性、异步性、结构特征进程的基本状态及其转换进程的三种基本状态就绪状态当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理机便可立即执行,这时的状态称为就绪状态执行状态指进程已获得处理机,其程序正在执行3.2进程阻塞状态进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停执行时的状态,亦即进程的执行受到阻塞,故称这种状态为阻塞状态,有时也称为“等待”状态或“睡眠”状态。进程状态的转换-就绪→执行状态处于就绪状态的进程,当进程调度为之分配了处理机后-执行→阻塞状态正在执行的进程因发生某种事件而无法执行-执行→就绪状态正在执行的进程如因时间片用完或一个优先权高的进程到来而被暂停执行-阻塞→就绪状态处于阻塞状态的进程,其等待的事件已经发生3.2进程进程的挂起状态挂起状态的引入-终端用户的需要-父进程的需要-操作系统的需要-对换的需要-负荷调节的需要进程状态的转换在引入挂起状态后,又将增加从挂起状态(又称静止状态)到非挂起状态(又称活动状态)的转换-活动就绪→静止就绪-活动阻塞→静止阻塞-静止就绪→活动就绪-静止阻塞→活动阻塞3.2进程3-2-3进程控制块PCB进程控制块的作用-进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程-操作系统是根据进程控制块PCB来对并发执行的进程进行控制和管理的-PCB是进程存在的唯一标志进程控制块中的信息-进程标识符信息进程标识符用于唯一地标识一个进程,通常有外部标识符和内部标识符-处理机状态信息处理机状态信息主要是由处理机各种寄存器中的内容所组成3.2进程-进程调度信息存放了一些与进程调度和进程对换有关的信息-进程控制信息PCB的组织方式链接方式、索引方式3.2进程3-2-4进程控制进程控制的主要任务是创建和撤消进程以及实现进程的状态转换操作系统内核定义通常,将一些与硬件紧密相关的模块诸如中断处理程序、各种常用设备的驱动程序以及运行频率较高的模块(诸如时钟管理、进程调度以及许多模块公用的一些基本操作)都安排在紧靠硬件的软件层次中并使它们常驻内存,以便提高操作系统的运行效率,并对它们加以特殊的保护,把这一部分称为操作系统的内核操作系统内核的功能中断处理、进程管理、资源管理中的基本操作原子操作所谓原子操作是指:一个操作中的所有动作,要么全做,要么全不做。换言之,原子操作是一个不可分割的操作3.2进程进程的创建进程图-进程图是用于描述进程家族关系的有向树-子进程可以继承父进程所拥有的资源,当子进程撤销时,应将从父进程那里获得的资源归还给父进程;在撤销父进程时,也必须同时撤销其所有的子进程引起创建进程的事件用户登录、作业调度、提供服务、应用请求进程的创建过程调用进程创建原语create()创建进程-申请空白PCB-为新进程分配资源-初始化进程控制块-将新进程插入就绪队列3.2进程进程的终止引起进程终止的事件正常结束、异常结束、外界干预进程的终止过程调用进程终止原语destroy()终止进程-根据被终止进程的标识符从PCB集合中检索出该进程的PCB,从中读出该进程的状态-若被终止进程正处于执行状态,应立即终止该进程的执行并设置调度标志为真-若该进程还有子孙进程,还应将其所有子孙进程予以终止-将该进程所拥有的全部资源,或者归还其父进程或者归还给系统-将被终止进程的PCB从所在队列中移出,等待其他程序来搜集信息3.2进程进程的阻塞与唤醒引起进程阻塞和唤醒的事件请求系统服务、启动某种操作、新数据尚未到达、无新工作可作进程阻塞过程进程便通过调用阻塞原语block()把自己阻塞-立即停止当前进程的执行-把进程控制块中的现行状态由“执行”改为“阻塞”,并把它插入到阻塞队列-调度程序进行重新调度,保留被阻塞进程的处理机状态(在PCB中),再按新进程的PCB中的处理机状态设置CPU环境进程唤醒过程调用唤醒原语wakeup()将等待该事件的进程唤醒-把被阻塞进程从等待该事件的阻塞队列中移出-将其PCB中的现行状态由“阻塞”改为“就绪”-然后再将该进程插入到就绪队列中3.2进程进程的挂起与激活进程的挂起过程当出现了引起进程挂起的事件时,系统就利用挂起原语suspend()将指定进程或处于阻塞状态的进程挂起-检查被挂起进程的状态,若正处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将其改为静止阻塞-如被挂起的进程正在执行,则转调度程序重新调度进程的激活过程当发生激活进程的事件时系统将利用激活原语active()将指定进程激活-将进程从外存调入内存,检查该进程的现行状态:若是静止就绪,便将其改为活动就绪;若为静止阻塞,便将其改为活动阻塞-假如采用的是抢占调度策略,检查是否要进行重新调度3.3进程调度3-3-1调度的基本概念高级、中级和低级调度一个作业从提交开始直到完成,往往要经历三级调度高级调度高级调度又称为作业调度,它决定将哪些在外存上处于后备状态的作业调入主机内存,准备执行低级调度低级调度又称为进程调度。它决定就绪队列中哪个进程将获得处理机,并实际执行将处理机分配给该进程的操作中级调度在有的系统中,可能增加一中级调度,主要作用是在内存和外存对换区之间进行进程对换,以解决内存紧张问题3.3进程调度进程调度的功能进程调度就是系统按照某种算法把CPU动态地分配给某一就绪进程。进程调度工作是通过进程调度程序来完成的。进程调度程序的主要功能-选择占有处理机的进程-进行进程上下文的切换调度方式非剥夺方式该方式规定,分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件(如提出I/O请求)而阻塞时才把处理机分配给另一进程-优点:简单,系统开销小,貌似公正-缺点:可能导致系统性能的恶化3.3进程调度剥夺方式该方式规定,当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程-剥夺原则:优先权原则、短进程优先原则、时间片原则3-3-2进程调度算法先进先出(FIFO)算法-算法:把处理机分配给最先进入就绪队列的进程-优点:易于实现、表面上公平-缺点:服务质量不佳、对短进程不利最短处理机执行期优先调度算法-算法:从就绪队列中选出“下一个处理机执行期”最短的进程,为之分配处理机使之执行-优点:可获得较好的调度性能-缺点:进程的处理机执行期难以准确得到、对长进程不利3.3进程调度最高响应比优先调度算法-算法:响应比=(等待时间+要求的服务时间)/要求的服务时间,每次选取响应比最高的进程调度-优点:所以对短进程有利,并且考虑了等待时间-缺点:计算响应比有一定的系统开销优先级调度算法-算法:将处理机分配给就绪队列中优先级最高的进程优先级-静态优先级再进程创建时确立,确定后运行期间保持不变。确立依据有:进程的类型、进程对资源的需求、用户申请的优先级优点:简单缺点:不能动态反映进程特点,系统调度性能差3.3进程调度-动态优先级进程在开始创建时,根据某种原则确定一个优先级后,随着进程执行时间的变化,其优先级不断地进行动态调整确定依据:根据进程占有的CPU时间的长短来决定,占有时间越长优先级越低;根据进程等待CPU的时间来决定,时间越长优先级越高时间片轮转调度算法-算法:通常用在分时系统,它轮流地调度系统中所有就绪进程,使就绪进程依次获得一个时间片的运行时间时间片长短确定遵循原则既要保证系统各个用户进程及时地得到响应,又不要由于时间片太短而增加调度的开销,降低系统的效率进程依次执行时可能发生的三种情况-进程未用完一个时间片便结束,这时系统应提前进行调度3.3进程调度-进程在执行过程中提出I/O请求而阻塞,系统应将它放入相应的阻塞队列并引起调度-进程用完一个时间片后尚未完成。系统应将它重新放到就绪队列的末尾,等待下次执行前后台调度算法-算法:该方法用在批处理和分时相结合的系统中。将分时用户作业放在前台,把批处理作业放在后台。系统对前台作业按照时间片轮转法进行调度,仅当前台无作业时,才把处理机分配给后台作业的进程。后台进程通常按先来先服务方式运行-优点:使分时用户进程得到及时响应,又提高了系统资源的利用率3.3进程调度多级反馈队列轮转算法-算法:系统设置多个不同优先级的就绪队列,每次调度总是先调度优先级高的队列,仅当该队列空时,才调度次高优先级队列-优点:能较好地满足各类作业的用户要求,既能使分时用户作业得到满意的响应,又能使批处理用户的作业获得较合理的周转时间3.3进程调度3-3-3进程调度的时机和过程进程调度的时机-正在执行的进程运行完毕-正在执行的进程调用阻塞原语将自己阻塞起来进入等待状态-在采用抢占式优先级调度时,有优先级高于正在运行进程的进程进入就绪队列-在分时系统中时间片已经用完进程调度的过程-进程调度所依赖的数据结构通常是调度队列,由于调度的原因不同
本文标题:操作系统课件 进程与进程管理
链接地址:https://www.777doc.com/doc-3169431 .html