1.2 处理机调度

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

1.2.1 分级调度

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

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

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

1.2.2 作业调度

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

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

  1. 对所有作业公平合理
  2. 因使设备有较高的利用率
  3. 每天执行尽可能多的作业
  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)具有快速切换机制

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EDP 1.21.2a是数据传输格式,用于将计算机系统传输到其他设备或软件。EDP是“Electronic Data Processing”的缩写,是1960年代到1970年代计算机行业中较为流行的概念。 EDP 1.2是早期的数据传输格式,也被称为“Binary-Coded Decimal(BCD)”格式,用于将大型计算机系统上的数据传输到较小的计算机或其他设备上。它使用了BCD编码,将数字表示为0到9之间的十进制数。 然而,这种格式存在一些缺陷,如传输速度慢、存储空间占用大等。因此,EDP 1.2a于1973年推出,是对早期版本的改进和升级。新版本使用更加高效的方式将数据编码,可以更快地传输和存储数据,并且减少了数据传输出错的概率。 总的来说,EDP 1.21.2a都是早期的数据传输格式,早在计算机技术远远不够先进的时期就已经存在了。随着计算机技术的发展和进步,这些格式也因其各自的优缺点被替代或更换了。即使如此,EDP 1.21.2a仍然具有历史意义,它们是计算机技术的一个重要里程碑。 ### 回答2: EDP(Electronic Data Processing)的1.21.2a是指计算机领域中的技术标准。EDP 1.2是一个早期的计算机技术标准,它于1960年代开发,旨在规范计算机软件和硬件的交互和兼容性。该标准对于当时的计算机技术非常重要,因为它促进了各种计算机软件和硬件的互通性和可编程性。然而,随着计算机技术的不断发展,EDP 1.2逐渐过时了。 因此,人们就开发了EDP 1.2a标准,以更好地应用于现代计算机技术。EDP 1.2a是指EDP 1.2的更新版本,是IEEE(Institute of Electrical and Electronics Engineers)制定的电子数据处理标准。这个标准覆盖了许多方面的计算机技术,如数据结构、程序设计语言、文件管理、通信、网络协议等。与EDP 1.2相比,EDP 1.2a在通讯协议、数据传输和数据安全等方面更加先进和完善。 综上,EDP 1.21.2a都是计算机领域中的技术标准,其中EDP 1.2是一个早期的标准,而EDP 1.2a是其更新版本,更加适用于现代计算机技术,具有更高的可编程性、可靠性和安全性。 ### 回答3: EDP 1.21.2a是计算机系统中的两种不同的标准,它们都针对处理机指令集的特性进行了规范。 EDP 1.2是英文Electronic Data Processing标准的缩写,指的是第1版第2部分。这个标准主要关注基于16位字长的机器指令集规范。EDP 1.2标准是在20世纪60年代末、70年代初开发出来的,当时主要应用在大型计算机上。 而EDP 1.2a则是在EDP 1.2的基础上进一步修订得出的新标准。主要改进了缺陷性能,增强了指令集和机器字长支持,同时还包括了一些新的指令。EDP 1.2a标准已经适用于现代计算机,其完备的功能与性能得到了广泛的认可。 总体来说,EDP 1.21.2a这两个标准对大型计算机或其他关键系统的操作具有重要作用。它们为计算机的指令集提供了统一的规范,确保了各种设备的兼容性和稳定性。对于开发计算机应用程序的开发者来说,熟练掌握这些标准是极其重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值