1.2 处理机调度 您所在的位置:网站首页 处理机调度分哪几个层次组成的 1.2 处理机调度

1.2 处理机调度

2024-07-12 02:53| 来源: 网络整理| 查看: 265

本章分为6个小节 1.2.1 分级调度 1.2.2 作业调度 1.2.3 进程调度 1.2.4 调度算法 1.2.5 实时系统调度方法

1.2.1 分级调度

作业状态及其转换 一个作业从提交给计算机系统到执行结束退出系统,一般要经历4个阶段:提交、收容、执行和完成四个阶段。

在这里插入图片描述 一个作业在其处于输入设备进入外部存储设备的过程叫做提交状态。处于提交状态的作业,因其信息尚未全部进入系统,所以不能被调度程序选取。收容状态也叫后备状态。输入管理系统不断地将作业输入到外存对应地部分(输入井,专门存放待处理作业信息的一组外存分区)若一个作业的全部信息已完全被输入到输入井中,在未被调度执行之前都为收容状态。作业调度程序从后后备作业中若干个作业到内存投入运行。被选入的作业建立进程并分配资源,这时被选入的作业处于执行状态。但是由于处理机总数小于并发执行的进程数,所有被选入的作业被不是直接执行,有的可能处于等待资源或就绪状态。当作业运行完毕,资源尚未完全被回收时,该作业处于完成状态,此时系统会做一些处理工作。 调度层次 一般来说处理机调度可分为4级:

作业调度:又称为宏观调度或高级调度,其主要作用就是按照一定的原则从输入井选择合适的作业,给选出的作业分配内存、输入输出设备等必要资源,并建立进程。以使该作业得到竞争处理机的权利。另外当该作业执行完毕,还负责回收系统资源。交换调度:又称为中级调度,其主要作用是按照给定的原则和策略将外存交换区处于就绪等待状态的进程调入内存或把内存中处于就绪状态的进程交换到外存交换区。交换调度主要涉及内存管理和扩充。进程调度:又称为低级调度,其作用是按照某种策略选取一个处于就绪状态的进程占用处理机。在占用处理机后,进行进程上下文切换以适应处理机执行环境。线程调度:在分时系统和实时系统中,只有进程调度、线程调度和交换调度,为了缩短响应时间,作业直接建立在内存中。 1.2.2 作业调度

作业调度主要是完成作业从收容状态到执行状态的转换,以及执行状态到完成状态的转变。主要讲作业调度的功能及调度性能的评价 作业调度功能 5. 记录系统中各作业的状况。作业调度程序要挑选一个作业投入运行,则必须掌握作业的各个状态,包括执行阶段的状况。通常系统为进入收容状态的作业建立一个JCB控制表记录有关信息。当作业被执行完进入完成状态,系统又将JCB撤销。不同的系统其JCB具体内容也有所不同,其主要内容如下 在这里插入图片描述 6. 从后备队列中挑选一部分作业投入运行。作业调度程序根据选定的调度算法,从后备队列中挑选一部分作业投入运行。 7. 为选中的作业做好执行前的准备。为选中的作业建立进程,分配资源 8. 在作业执行结束时做好善后工作。主要是输出作业管理信息,回收资源等善后工作

作业从后备状态到执行状态,又从执行状态到完成状态的转换如下图 在这里插入图片描述 作业调度目标和性能衡量 一般来说,作业调度目标有以下4点

对所有作业公平合理因使设备有较高的利用率每天执行尽可能多的作业有快的响应时间

由于这些目标有冲突的地方,所以单一调度算法不能满足这些目标 在批处理系统中,作业的平均周转时间或带权周转时间被作为衡量调度算法的标准。在分时系统和实时系统中,还外加了平均响应时间作为衡量的标准

周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。

它包括四个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU.上:执行的时间、进程等待I/O操作完成的时间。后三项在一个作业的整个处理过程中,可能发生多次。 (作业)周转时间=作业完成时间-作业提交时间 平均周转时间 =各作业周转时间之和/作业数 思考:有的作业运行时间短,有的作业运行时间长,因此在周转时间相同 的情况下,运行时间不同的作业,给用户的感觉肯定是不一样的 带权周转时间 =作业周转时间/作业实际运行的时间= (作业完成时间 – 作业提交时间)/作业实际运行的时间 平均带权周转时间 =各作业带权周转时间之和/作业数在这里插入图片描述

在这里插入图片描述 此外衡量指标还有 在这里插入图片描述

1.2.3 进程调度

进程调度的功能

记录系统中所以进程的执行情况。进程调度模块通过PCB变化掌握系统中所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择一个进程占用处理机。

选择占用处理机的进程。选择合适的策略选择占用处理机的进程

进行进程上下文的切换。一个进程的上下文包括进程的状态、有关变量和数据结构的值、硬件寄存器的值和PCB以及有关程序等。一个进程的执行是在进程的上下文中执行的。当一个正在执行的进程由于某种原因让出处理机,则要进行进程上下文切换,以使另一个进程得以执行。

进程调度的时机 引起进程调度的原因:

执行的进程执行完毕

执行的进程自己调用阻塞原语将自己阻塞进入等待休眠状态

执行的进程调用P原语操作,因资源不足被阻塞;或调用V原语操作激活了等待资源的进程队列

执行中进程退出I/O请求后被阻塞

在分时系统中时间片已经用完

在执行系统调用,在系统返回进程时,可认为系统进程执行完毕,从而可调度选择一新的用户进程执行 (以上为CPU执行不可剥夺方式下所引起进程调度原因。在CPU执行方式是可剥夺时,还有:)

就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度

进程上下文切换 进程上下文由正文段、数据段、硬件寄存器的内容以及有关数据结构等组成。 进程上下文切换包括4个步骤:

(1)决定是否做上下文切换以及是否运行做上下文切换。包括对进程调度原因的检查分析,以及当前执行进程的资格和CPU执行方式检查等。 (2)保存当前执行进程的上下文。 (3)选择一个处于就绪状态进程 (4)恢复或装配所选进程的上下文,将CPU控制器交给所选进程

1.2.4 调度算法

调度算法是根据系统的资源分配策略所规定的资源分配算法。有的调度算法适用于作业调度,有的适用于进程调度,有的两者都适用。 一、先来先服务(FCFS)/先进先出(FIFO)调度算法 (1)概念:按照作业/进程进入系统的先后次序进行调度,先进入系统者先调度;即启动等待时间最长的作业/进程。是一种最简单的调度算法,即可用于作业调度,也可用于进程调度

(2) 先来先服务(先进先出)优缺点

比较有利于长作业(进程),而不利于短作业(进程)有利于CPU繁忙型作业(进程) ,而不利于I/O繁忙型作业(进程)用于批处理系统,不适于分时系统

二、短作业优先调度算法(SJF)

1、概念:从队列中选出一个估计运行时间最短的作业优先调度,即可用于作业调度,也可用于进程调度

2、SJF调度算法也存在不容忽视的缺点

对长作业不利。严重的是,若一长作业(进程)进入系统的后备队列(就绪队列),由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度——饥饿完全未考虑作业(进程)的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。

三、简单的时间片轮转法(RR—Round Robin) (1)概念:系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片;当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便停止该进程的执行,并将其放就绪队列尾;然后,再把处理机分配给就绪队列中新的队首;时间片的大小从几ms到几百ms (2)缺点:紧迫任务响应慢。 UNIX中采用:时间片+优先权 (3)时间片选取 太小,会频繁发生中断、进程上下文切换,增加系统开销,但利于短作业 太大,退化成FCFS ——时间片应该略大于一次典型交互的时间 四、高优先权调度算法 (优先级法) 即可用于作业调度,也可用于进程调度

1、优先调度算法的类型 (1)非抢占式优先权调度算法 特点:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成,或因发生某事件使该进程放弃处理机时,系统才将处理机重新分配给另一优先权最高的进程 主要用于批处理系统中,也可用于某些对实时性要求不严的实时系统中 (2)抢占式优先权调度算法 特点:把处理机分配给优先权最高的进程,但在执行期间,只要出现另一个优先权更高的进程,则进程调度程序就立即停止当前进程的执行,并将处理机分配给新到的优先权最高的进程 注意:只要系统中出现一个新的就绪进程,就进行优先权比较 该调度算法,能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中

2、优先权类型 高优先权调度算法,需要比较作业或进程的优先级,所以我们需要了解一下优先级 优先权分为静态优先权、动态优先权 (1)静态优先权 静态优先权在创建进程时确定,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,0∼7或0∼255, 又把该整数称为优先数 确定进程优先权的依据有如下三个方面: 进程类型:系统进程的优先权高于一般用户进程。 进程对资源的需求:如进程的估计执行时间及内存需要量少的进程,应赋予较高的优先权。 用户要求:由用户进程的紧迫程度和用户所付费用的多少来确定优先权。 (2)动态优先权 概念:在创建进程时赋予的优先权是随进程的推进或随其等待时间的增加而改变,以获得更好的调度性能。可规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高 特征:具有相同优先权初值的进程,则最先进入就绪队列,其将因其动态优先权变得最高而优先获得处理机,此即FCFS算法 具有各不相同的优先权初值的就绪进程,则优先权初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机 注意:当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率b下降,则可防止一个长作业长期地垄断处理机 五、高响应比优先调度算法 (1)概念:高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。 该算法中的响应比是指作业等待时间与运行比值,响应比公式定义如下: 响应比 =(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s,因此响应比一定是大于1的。 (2)优缺点 优点:等待时间相同的作业,则要求服务的时间愈短,其优先权愈高,——对短作业有利 要求服务的时间相同的作业,则等待时间愈长,其优先权愈高,——是先来先服务 长作业,优先权随等待时间的增加而提高,其等待时间足够长时,其优先权便可升到很高, 从而也可获得处理机——对长作业有利 是一种折衷,既照顾了短作业,又考虑了作业到达的先后次序,又不会使长作业长期得不到服务。 缺点:要进行响应比计算,增加了系统开销

1.2.5 实时系统调度方法

实时系统与其他系统的最大区别在于,其处理和控制的正确性不仅仅取决于计算的逻辑结果,而且取决于计算和处理结果产生的时间。 因此,实时系统的调度与工业生产中的生产过程调度有许多相同之处,即把给定的任务,按所要求的时限调配到相应的设备上去处理完成。 根据对处理外部事件的时限(deadlines)要求,实时系统中处理的外部事件可分为硬实时任务(hard real time task)和软实时任务(soft real time task)。硬实时任务要求系统必须完全满足任务的时限要求。软实时任务则允许系统对任务的时限要求有一定的延迟,其时限要求只是一个相对条件。

实时系统的另一个特点是它所处理的外部任务可分为周期性的与非周期性的两大类。对于非周期性任务来说,必定存在有一个完成或开始进行处理的时限,而周期性任务只要求在周期T内完成或开始进行处理,一般来说,实时操作系统具有以下特点:

(1)有限等待时间(决定性) (2)有限响应时间 (3)用户控制 (4)可靠性高 (5)系统出错处理能力强 实现实时调度的基本条件 (1)提供必要的调度信息(就绪时间、开始截止时间和完成截止时间、处理时间、资源要求、优先级) (2)系统处理能力强。在实时系统中,若处理机的处理能力不够强,则有可能因处理机忙不过来而致使(3)某些实时任务不能得到及时处理。 (4)采用抢占式的调度机制 (5)具有快速切换机制



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有