《操作系统原理课件第六章处理机管理.ppt》由会员分享,可在线阅读,更多相关《操作系统原理课件第六章处理机管理.ppt(31页珍藏版)》请在三一办公上搜索。
1、1,第六章 处理机管理,2,6.1 处理机的二级调度,宏观上:作业调度微观上:进程调度,3,6.1 处理机的二级调度,作业、作业状态及转移 在批处理系统中一个用户程序的执行的全过程称为一个作业,当作业提交给计算中心(或机房)后,由机房工作人员录入到存储设备上(如磁带、磁盘等),然后,由作业调度程序按某种调度策略将作业调入计算机系统执行,执行完成后,由作业调度程序做作业的善后处理工作,至此一个作业完成。,4,6.1 处理机的二级调度,我们把上述对作业的操作归纳成四种状态:1、提交状态 用户将自己的程序和数据放在输入设备上,等待;2、后备状态 系统响应用户的要求,将作业带领到直接存取的后援存储器中
2、,等待调度;3、执行状态 从作业计算开始,到计算完成为止,该作业处于执行状态。4、完成状态 从作业计算完成开始,到善后处理完毕退出系统为止,称为作业完成状态。,5,6.2 作业调度作业调度的功能,作业调度的主要任务是完成作业从后备状态到执行状态和从执行状态到完成状态的转变。作业调度功能:1.记录已进入系统的各作业的情况(JCB,Job Control Block);2.按一定的调度算法,从后备作业中选择一个或几个作业进入系统内存;3.为被选中的作业创建进程,并且为其申请系统资源;4.作业结束后作善后处理工作。,6,6.2 作业调度 6.2.2 作业控制块(JCB,Job Control Blo
3、ck),每个作业进入系统时由系统为其建立一个作业控制块JCB(Job Control Block),它是存放作业控制和管理信息的数据结构,主要信息见右图。,7,6.2 作业调度 6.2.3 调度性能的衡量,作业调度算法规定了从后备作业中选择作业进入系统内存的原则,这些原则的性能如何,就是本节所讨论的问题。一、确定调度算法时应考虑的因素1.应与系统的整体设计目标一致2.考虑系统中各种资源的负载均匀3.保证作业的执行4.对一些专用资源的使用特性的考虑,8,6.2 作业调度 6.2.3 调度性能的衡量,二、调度性能的衡量通常采用平均周转时间和平均带权周转时间作业的周转时间:ti=tci-tsi ti
4、:作业周转时间 tci:作业完成时间 tsi:作业提交时间,9,6.2 作业调度 6.2.3 调度性能的衡量,10,6.2 作业调度 6.2.4 先来先服务调度算法和短作业优先调度算法,先来先服务调度算法:先来先服务算法是按作业来到的先后次序进行调度的,换句话说,调度程序每次选择的作业是等待时间最久的,而不管作业的运行时间的长短。这种调度算法突出的优点是实现简单,效率较低,在一些实际的系统和一般应用程序中采用这种算法的较多。,11,6.2 作业调度 6.2.4 先来先服务调度算法和短作业优先调度算法,短作业优先调度算法:短作业优先调度算法考虑作业的运行时间,每次总是选择一个运行时间最短的作业调
5、入内存(系统).在一般情况下这种调度算法比先来先服务调度算法的效率要高一些。实现相对先来先服务调度算法要困难些,如果作业的到来顺序及运行时间不合适,会出现饿死现象,例如,系统中有一个运行时间很长的作业JN,和几个运行时间小的作业,然后,不断地有运行时间小于JN的作业的到来,这样,作业JN就得不可调度而饿死。另外,作业运行的估计时间也有问题。,12,6.2 作业调度 6.2.4 先来先服务调度算法和短作业优先调度算法,13,6.2 作业调度 6.2.5 其它几种调度算法,响应比高者优先调度算法:先来先服务和短作业优先算法都有其片面性,先来先服务调度算法只考虑作业的等待时间,而忽视了作业的运行时间
6、,短作业优先算法则相反,只考虑了作业的运行时间,而忽视了作业的等待时间。响应比高者优先调度算法是介于这两种算法之间的一种折中的算法。,14,6.2 作业调度 6.2.5 其它几种调度算法,响应比高者优先调度算法这样算法从理论上讲是比较完备的,但作业调度程序要统计作业的等待时间,使用用户的估计的运行时间,并要作浮点运算(这是系统程序最忌讳的)浪费大量的计算时间,这是系统程序所不允许的。,15,6.2 作业调度 6.2.5 其它几种调度算法,优先数调度算法优先数调度算法是综合考虑各方面的因素(作业等待时间、运行时间、缓急程度,系统资源使用等),给每个作业设置一个优先数,调度程序总是选择一个优先数最
7、大(或者最小)的作业调入(系统)内存。这种算法实现的困难在于如何综合考虑,这些因素之间的关系怎样处理。,16,6.2 作业调度 6.2.5 其它几种调度算法,均衡调度算法均衡调度算法就是一种更为理想化的调度算法,如何实现就更困难,并且算法本身的开销有时会远大于先来先服务和短作业优先调度算法,这也是这两种算法被众多系统采用的最根本的原因。,17,6.3 进程调度6.3.1 调度/分派结构,处理机分配由调度和分派两个功能组成。调度:组织和维护就绪进程队列。包括确定调度算法、按调度算法组织和维护就绪进程队列。分派:是指当处理机空闲时,从就绪队列队首中移一个PCB,并将该进程投入运行。调度与进程控制和
8、进程通信的功能有密切的联系,当一个进程阻塞时,这种进程将进入相应的等待队列中,并让出CPU,调用进程分派程序选择一个就绪进程占用CPU;当一进程被唤醒时,这种进程将插入到就绪进程队列中。在一般的操作系统教材中把上述功能称为进程调度。,18,6.3 进程调度6.3.2 进程调度的功能,1.记录和保持系统中所有进程的有关情况和状态特征 有关进程调度的信息是记录在PCB中的,在进程调度中用到的主要是进程的状态、调度优先级(优先数)、就绪进程队列等。,19,6.3 进程调度6.3.2 进程调度的功能,2.决定分配(处理机)策略确定进程调度的策略,例如,先来先服务、优先数调度策略,调度策略的不同,组织就
9、绪进程队列的方式也不同。先来先服务调度策略,就绪队列要按等待时间从大到小的顺序排队;优先数调度,则就绪进程队列要按优先数的升序(或降序)的方式排队。等等。,20,6.3 进程调度6.3.2 进程调度的功能,3.实施处理机的分配总而言之,进程调度包括:调度算法的选择(调度算法)调度时机的选择(调度时机)实施进程调度(调度程序),21,6.3 进程调度6.3.4 调度用的进程状态变迁图,在这个图中新创建的进程进入低优就绪状态,一个运行进程因时间片到(实际上是计算量大的进程)而转换成低优就绪;进程因等待I/O完成而转换成高优就绪。,22,6.3 进程调度6.3.5 进程优先数调度算法,优先数调度算法
10、是目前操作系统广泛采用的一种进程调度算法,这种算法按照某种原则由系统(或用户、或系统与用户结合)赋予每个进程一个优先数,在处理机空闲时,进程调度程序就从就绪进程中选择一个优先数最大(或者最小)的进程占用CPU(该进程就从就绪状态转换成运行状态)。采用这种调度算法的关键是如何确定进程的优先数、一个进程的优先数确定之后是固定的,还是随着该进程运行情况的变化而变化。,23,6.3 进程调度6.3.5 进程优先数调度算法,静态:进程的优先数在进程创建时确定后就不再变化确定进程优先数:系统确定:(运行时间、使用资源,进程的类型)用户确定:(紧迫程度,计费与进程优先数有关)系统与用户结合(用户可以为本用户
11、的进程设置优先数,但不是作调度用,系统还要根据系统情况把用户设置的进程优先数作为确定进程优先数的一个参数),24,6.3 进程调度6.3.5 进程优先数调度算法,动态进程优先数:系统在运行的过程中,根据系统的设计目标,不断地调整进程的优先数,这种方法的优点是能比较客观地反映进程的实际情况和保证达到系统设计目标。,25,6.3 进程调度6.3.6 循环轮转调度,循环轮转调度实际上是一种先来先服务算法的调度算法,它把系统的响应时间分成大小相等(或不相等)的时间单位,称为时间片。每个进程被调度到后,占用一个时间片,时间片用完后,该进程让出CPU,由运行状态转换成就绪状态,排在就绪队列的队尾。多个进程
12、循环轮转。,26,6.3 进程调度6.3.6 循环轮转调度,27,6.3 进程调度6.3.6 循环轮转调度,系统按进程转换成就绪状态的时间的降序排队,调度程序每次调度,总是从队首移出一进程的PCB,然后,将此进程投入运行(由就绪状态转换成运行状态)。一个运行时间片到的进程从运行状态转换成就绪状态后,排在就绪队列的队尾。评价:优点是实现简单、系统开销小缺点是不灵活,当系统中进程较少时,系统开销变大由于该算法简单易于实现,且系统开销较小,早期的分时操作系统和目前一些应用系统中广泛采用了这种调度算法。,28,6.3 进程调度6.3.6 循环轮转调度,二、可变时间片轮转调度 为了克服前种调度算法的缺点
13、,人们设计出一种可变时间片的调度算法,其思想是:时间片的大小是可变的,系统可根据系统中当前的进程数来确定时间片的大小。这种算法从理论上克服了系统中进程数很少时系统开销大的缺点,但修改时间片的大小,统计系统进程的数量也需要消耗系统时间,还有一个调整时间片大小的周期,太大,等于是固定时间片,太小,系统开销很大,得不偿失。,29,6.3 进程调度6.3.7 多级队列法,多级队列(Multilevel Queue)调度算法把就绪队列划分成几个单独的队列,一般根据进程的某些特性,如占用内存大小、进程优先级和进程类型,永久性地把各个进程分别链入不同的队列中,每个队列都有自己的调度算法。,30,6.3 进程调度6.3.8 多级反馈队列法,多级反馈队列调度算法,系统中设置多个就绪队列,每个队列对应一个优先级。各就绪队列中进程的运行时间片不同,高优先级队列的时间片小,低优先级队列的时间片大。新进程进入系统后,先放入第1个队列的末尾。系统先运行第1个队列中的进程这种调度算法基于抢占式,使用动态优先级机制。,31,6.3 进程调度6.3.9 进程调度的时机,创建进程。进程终止。等待事件。中断发生。运行到时。,
链接地址:https://www.31ppt.com/p-6185780.html