三级调度体系
处理机调度主要是对处理机运行时间进行分配。
按照一定算法或策略将处理机运行时间分配给各个用户进程
同时要尽量提高处理机的使用效率。
高级调度
高级调度是在作业层面的调度,也称作业调度或长程调度
在每次执行作业调度时,都须做出以下两个决定。 接纳多少个作业 –取决于多道程序度。接纳哪些作业 –取决于作业调度算法
基本过程:1. 选择作业 2. 调入内存 3. 创建进程并分配资源 4.将新创进程挂入就绪队列
高级调度决定允许哪些作业可进入内存,参与竞争CPU和系统其他资源,将一个或一批作业从后 备状态变为运行状态
作业一般要经历“提交” 、 “后备” 、 “执行” 和“完成”四个状态。
高级调度通常出现在需进行大量作业处理的批处理系统中,这类系统的设计目标是最大限度地提 高系统资源利用率和保持各种系统活动的充分并行。而分时操作系统和实时操作系统中,终端用户作业被直接送入内存,一般不需要作业调度。
中极调度
引入中级调度的主要目的:是为了提高内存利用率和系统吞吐量
中极调度又称内存调度,他是进程在内存和外存之间对换。
虚拟内存管理中,只有当进程被中级调度选中,才有资格占用内存。
低级调度
低级调度是三级调度中的最终调度,又称 底层调度。在这级调度中真正实现了处理机的分配, 它是系统不可缺少的最基本调度。
决定那个就绪态进程获得处理机,选择某个进程从就绪态转变为执行态
进程调度的功能主要包括以下两部分:
-
选择就绪进程
-
进程切换
调度队列模型
进程调度目标和调度方式
目标
-
公平
-
高效率
-
低响应时间
-
高吞吐量
-
特殊应用要求
实际上,进程调度目标完全服务于操作系统所属的类型
-
多道批处理操作系统:高效利用系统资源 高作业吞吐量。
-
分时操作系统:更关心多个用户的公平性 及时响应性。
-
实时操作系统:必须保证实时进程的请求得到及时响应, 往往不考虑处理机的使用效率。
-
通用操作系统:主要追求处理机使用的公平性以及各类资源使用的均衡性
调度方式
-
非抢占式调度:进程一旦获得处理机,外部因素不能中断该进程的运行,除非由于自身原因(IO、同步)主动放弃处理机。
-
抢占式调度:外部因素出现,操作系统会中断当前进程的执行,调度另一个进程运行。
非抢占调度
引起进程调度的因素:
-
正在执行的进程执行完毕, 或因发生某事件而不能再继续执行
-
执行中的进程因提出I/O请求而暂停执行;
-
在进程通信或同步过程中执行了某种原语操作,如P操作(wait操作)、Block原语、Wakeup原语等。
优点:
-
实现简单
-
系统开销小
-
适合批处理系统
缺点:难以满足紧急人物的要求
抢占方式
抢占原则:
-
优先级原则
-
短作业/进程优先
-
时间片原则
调度算法的评价准则
调度方式和算法的选择取决于操作系统的类型及其目标。
准则
面向用户
周转时间短
周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔称为作业的周转时间。
周转时间:
-
作业从外存后备队列上等待作业调度的时间
-
进程在就绪队列上等待进程调度的时间
-
进程在CPU上执行的时间;
-
进程等待I/O操作完成的时间。
响应时间快
响应时间: 是指从用户输入第一个请求到系统 给出首次响应(显示结果)的时间间隔。
评价分时系统中进程调度算法的重要准则之一
截止时间的保证
优先权准则
面对系统
系统吞吐量高
系统吞吐量:单位时间内系统所完成的作业数目。
处理机利用率好
各类资源的平衡利用。
调度算法
先来先服务算法FCFS
按照进程创建的时间,先创建先执行,直到此进程执行完成之后,下一个创建的进程才能被执行。
优缺点:
-
有利于长进程,不利于短进程。
-
有利于处理机繁忙的进程,不利于输入输出繁忙的进程。
-
算法简单,易于实现,系统开销小。
短作业(进程)优先调度算法
短作业优先调度算法:是从后备队列中选择一个或若干个估计运行时间最短的作业调入内存,并为它们创建进程运行。
短进程优先调度算法:是从就绪队列中选出一个估计运行时间最短的进程, 将处理机分配给它,使它立即执行并一直到进程结束。
如进程在执行过程中因某事件而阻塞并放弃处理机时, 系统重新调度其他短进程
就绪队列:按照运行时间从短到长排列的队列。调度时,需要从就绪队列队首调度进程运行。
优缺点:
-
照顾了短进程,提高了系统的总体吞吐量
-
对于长进程不利
时间片轮转算法
依据公平服务的原则,将处理机的运行时间划分成等长的时间片,轮转式分配给各个就绪进程使用
采用此算法的系统中,可以采用先来先服务的原则的就绪队列,调度时将处理机分派给队首进程;该算法能保证就绪队列中的所有进程在一给定的时间段内均能获得处理机运行
优先级调度算法
为每个进程赋予一个整数,表示其优先级。
就绪进程按照优先级的大小顺序排队,调度程序选择优先级最高的进程获得CPU。
静态优先级调度:进程的优先级在创建时确 定,其在进程的整个运行期间都不改变。
动态优先级调度:进程在创建时被赋予的优 先级可随进程执行或等待时间的增加而改变。(这可防止低优先级进程长期得不到运行)
非抢占式高优先级优先算法:只有当前运行进程自己阻塞或时间片用完,调度程序才将CPU分给高优先级进程
抢占式高优先级优先算法:高优先级进程一旦出现,立即抢占。
高相应比优先调度算法(HRRF)
动态优先级
相应时间需运行时间等待时间动态增长需运行时间需运行时间等待时间需运行时间
操作系统每隔固定时间间隔计算并修改所有进程的响应比R
特点:
-
如果作业或进程等待时间相同,则进程要求服务时间越短,其响应比R越大,利于短作业
-
如果作业或进程要求服务时间相同,等待时间决定响应比R,,这在某种程度照顾了长作业
-
缺点:计算R的开销,等待时间越长,其响应比越高,体现了了FCFS。
-
对于长作业,作业的响应比R可随着等待时间的增加而提高,当其等待足够长的时间时,它的响应比R达到最高,进而获得处理机不利于实时作业
多级反馈队列调度模型
时间片轮转调度算法 + 优先级调度算法 -> 多级反馈队列调度算法(MFQ,Multilevel Feedback Queue)
优点:
-
保证了短进程的优先,可让终端型用户满意
-
满足输入输出型进程的要求:输入输出型进程经常需要等待输入输出设备而阻塞,但阻塞的进程仍然处在较高优先级队列中
-
计算型长进程:用户不必担心其作业(进程)长期得不到处理
-
系统开销小:不需要动态计算时间片和优先级,进程的优先级和时间片等于他所在调度队列的优 先级和时间片