处理器调度(补)

调度的层次

长期调度(又称作业调度):主要功能是按照某种原则从磁盘某些盘区的作业队列和交互作业中选取作业进入主存,并为作业做好运行前的准备工作和作业完成后的善后工作中期调度:决定哪些进程被允许参与竞争处理器资源;
主要起到短期调整系统负荷的作用,以平顺系统的操作。
短期调度(又称处理器调度):主要功能是按照某种原则将处理器分配给就绪进程或线程。
处理器调度(补)插图

作业状态

作业在每一阶段中所处的状况称为作业的状态;
系统中的作业通常分为四种状态:
 提交状态(动态的,作业录入,提交给系统)
 后备状态(静态的,提交完成)
 运行状态(动态的,从后备队列挑选运行)
 完成状态(静态的,运行完成后)

作业状态及其转换

处理器调度(补)插图1

作业的调度

按照某种调度算法从后备队列中挑选作业进入主存中运行
作业调度程序
作业调度程序要完成以下工作:
 按照某种调度算法从后备作业队列中挑选作业;
 为选中的作业分配主存和外设资源;(前期准备工作)
 为选中的作业建立相应的进程;(前期准备工作)
 构造和填写作业运行时所需的有关表格;(前期准备工作)
 作业结束时完成该作业的善后处理工作,如收回资源,输出必要的信息,撤消该作业的全部进程和作业控制块。
通常在一个作业完成或处理器空闲时调入一个或多个作业。

作业控制块( JCB )

• 作业名:由用户提供,经系统登记在JCB中;
• 估计执行时间:指作业完成计算所需的时间,由用户根据经验估计的;
• 最迟完成时间:用户要求完成该作业的截止时间;
• 要求的主存量:该作业执行时所需占用的主存数量;
• 外设类型及台数:指作业执行时所需的外设类型及每类设备的台数;
• 要求的文件量和输出量:指本作业将存储在文件空间的文件信息总量,和将输出数据的总量;
• 进入系统时间:该作业的全部信息进入主存,其状态转变为后备状态的时间;
• 开始执行时间:该作业被作业调度程序选中,其状态由后备状态转变为执行状态的时间;
• 主存地址:指分配给该作业的主存区开始地址;
• 外设台号:分配给该作业的外设实际台号;
• 控制方式:有联机和脱机两种;
• 作业类型:指系统根据作业运行特性所规定的类型,可分三类:占CPU时间偏多的作业、I/O量偏大的作业以及使用CPU和I/O比较均衡的作业;
• 优先级:反映这个作业运行的紧急程度,可由用户自己指定,也可由系统根据作业类型、要求的资源、要求的运行时间与系统当前状况动态地给定;
• 状态:指本作业当前所处的状态,它可为后备状态、执行状态或完成状态中的任一种状态。
• 作业运行结束后,在释放了该作业所使用的全部资源后,作业调度程序调用存储管理程序,收回该作业的JCB空间,从而撤消了该作业。

单机系统的处理器调度

调度算法
先进先出调度算法
优先级调度算法——非抢占的、可抢占的
时间片轮转算法
最短进程优先调度算法
最短剩余时间优先调度算法
最高响应比优先调度算法
多级反馈队列调度算法

#假设处理完前处理器资源不会被剥夺 #假设单处理器

调度性能的衡量

通常采用平均周转时间和平均带权周转时间来衡量作业调度算法性能的好坏
周转时间:从作业提交完成到完成所经历的事件(运行时间+等待时间)
带权周转时间:周转时间除以执行时间

先进先出调度算法

按作业来到的先后次序进行调度,优先考虑在系统中等待时间最长的作业,而不管它要求执行时间的长短;
算法容易实现,但效率较低
对短作业不利,因为短作业执行时间很短,若令它等待较长时间,则带权周转时间会很高。

最短作业优先调度算法

按作业执行时间长短调度,优先考虑作业预期执行之间的长短
对先来的长作业不利

最高响应比优先调度算法

先进先出调度算法只考虑作业的等候时间而忽略了作业的执行时间;
最短作业优先调度算法只考虑用户估计的作业执行时间而忽略了作业的等待时间;
最高响应比优先调度算法是介于上述两算法之间的一种折衷算法,既照顾了短作业,又不使长作业的等待时间过长。