目录
一、处理机调度的基本概念
0、背景
(1)在多道程序系统中,一个作业被提交后必须经过处理机调度后,方能获得处理机执行
(2)对于批量型作业而言,通常需要经历作业调度(高级调度/长程调度)和进程调度(低级调度/短程调度)
两个过程后方能获得处理机
(3)对于终端型作业,则通常只需经过进程调度即可获得处理机
作业就在内存,实时性高
1、高级调度/作业调度/长程调度
(1)主要功能:根据某种算法,把外存上处于后备队列中的那些作业调入内存,它的调度对象是作业
(2)在每次执行作业调度时,都须做出以下两个决定:
Δ1、接纳多少个作业
Δ2、接纳哪些作业 :按照先来先服务、短作业优先、作业优先级三种调度算法
2、低级调度/进程调度/短程调度
(1)从就绪状态的进程中,挑选一个进程到处理器上运行
(2)调度的对象:进程 or 内核级线程
(3)地位:进程调度是最基本的一种调度,
在多道批处理、分时、实时三种类型的OS中,都必须配置这级调度
(4)实质: 就是将处理器资源合理分配给适当的进程,一方面确保任务的时间约束能被满足,
另一方面尽量提高处理器资源的利用率
(5)操作系统中负责进程调度的程序称为:进程调度器or分派器
(6)调度要解决的问题:WHAT:按什么原则分配CPU ---调度算法
WHEN:何时分配CPU ---调度的时机
HOW: 如何分配CPU ---调度过程、进程的上下文切换
(7)主要功能
Δ1、按某种算法选取进程(调度)
Δ2、上下文切换:保存处理机的现场信息
把处理器分配给进程
(8)三个基本机制
Δ1、排队器
为了提高进程调度的效率,应事先将系统中所有的就绪进程按照一定的方式排成一个或多个队列
Δ2、分派器(调度程序)
分派器把由进程调度程序所选定的进程,从就绪队列中取出该进程, 将处理机分配给它
Δ3、上下文切换机制
当对处理机进行切换时,会发生两对上下文切换操作
(9)进程调度方式
𝒜非抢占方式
Δ1、在采用这种调度方式时,一旦把处理机分配给某进程后,不管它要运行多长时间,
都一直让它运行下去,决不会因为时钟中断等原因而抢占正在运行进程的处理机,
也不允许其它进程抢占已经分配给它的处理机
直至该进程完成,自愿释放处理机,或发生某事件而被阻塞时,才再把处理机分配给其他进程
Δ2、在采用非抢占调度方式时,可能引起进程调度的因素可归结为这样几个:
① 正在执行的进程执行完毕, 或因发生某事件而不能再继续执行
② 执行中的进程因提出I/O请求而暂停执行
③ 在进程通信或同步过程中执行了某种原语操作,如P操作 (wait操作)、Block原语、suspend原语等
Δ3、这种调度方式的优点是实现简单、系统开销小,适用于大多数的批处理系统环境
但它难以满足紧急任务的要求——立即执行,因而可能造成难以预料的后果
显然,在要求比较严 格的实时系统中,不宜采用这种调度方式
ℬ抢占方式
Δ1、这种调度方式允许调度程序根据某种原则去暂停某个正在执行的进程,
将已分配给该进程的处理机重新分配给另一进程
Δ2、优点:可以防止一个长进程长时间占用处理机,能为大多数进程提供更公平的服务,
特别是能满足对响应时间有着较严格要求的实时任务的需求
Δ3、缺点:抢占方式所需付出的开销较大
Δ4、抢占的原则有:优先权原则---通常是对一些重要的和紧急的作业赋予较高的优先权
短作业(进程)优先原则
时间片原则
3、中级调度/中程调度
(1)引入中级调度的主要目的:是为了提高内存利用率和系统吞吐量
虚拟内存
(2)为此,应使那些暂时不能运行的进程调至外存上去等待,此时的进程状态为就绪驻外存状态/挂起状态
(3)当这些进程重又具备运行条件、且内存又稍有空闲时,由中级调度来决定把外存上的哪些又具备运行
条件的就绪进程,重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度
♥三种调度的小结
(1)进程调度的运行频率最高,在分时系统中通常是10~100 ms 便进行一次进程调度,因此把它称为短
程调度。为避免 进程调度占用太多的CPU时间,进程调度算法不宜太复杂。
(2)作业调度往往是发生在一个(批)作业运行完毕,退出系统, 而需要重新调入一个(批)作业进入内存
时,故作业调度的周 期较长,大约几分钟一次,因此把它称为长程调度。由于其 运行频率较低,故
允许作业调度算法花费较多的时间。
(3)中级调度的运行频率基本上介于上述两种调度之间,因此把 它称为中程调度。
二、调度队列模型和调度准则
1、仅有进程调度的调度队列模型
每个进程在执行时都可能出现以下三种情况
(1)任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态
(2)任务在本次分得的时间片内尚未完成,OS便将该任务再放入就绪队列的末尾
(3)在执行期间,进程因为某事件而被阻塞后,被OS放入阻塞队列
2、具有高级和低级调度的调度队列模型
作业调度按一定的作业调度算法,从外存的后备队列中选择一批作业调入内存,并为它们建立进程,
送入就绪队列,然后才由进程调度按照一定的进程调度算法选择一个进程,把处理机分配给该进程
3、同时具有三级调度的调度队列模型
(1)当在OS中引入中级调度后,人们可把进程的就绪状态分为内存就绪(表示进程在内存中就绪)
和外存就绪(进程在外存中就绪);
(2)把阻塞状态进一步分成内存阻塞和外存阻塞两种状态
(3)在调出操作的作用下,可使进程状态由内存就绪转为外存就绪,由内存阻塞转为外存阻塞;
(4)在中级调度的作用下,又可使外存就绪转为内存就绪
4、调度算法的共同目标
公平性
系统资源使用的平衡性
策略强制执行
5、调度的原则:满足用户的需要和系统的需要
6、批处理系统的目标
(1)周转时间短
所谓周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔
包括:①作业在外存后备队列上等待调度的时间