第四章 处理机调度
4.1 分级调度
1.作业是用户要求计算机所做的关于一次业务处理的全部工作,它包括作业的提交、执行和输出等过程。
2.一个作业从提交给计算机系统到执行结束退出系统,一般都要经历提交、收容、执行和完成4个状态。
3.作业的状态及其转换
4.一个作业在其处于从输入设备进入外部存储设备的过程中称为提交状态。收容状态也称后备状态。
5.处理机调度分为四级:
(1)作业调度。又称宏观调度或高级调度。其主要任务是按一定的原则对外存输入井上的大量后备作业进行选择,给选出的作业分配内存和输人输出设备等必要的资源,并建立相应的根进程,以使该作业的进程获得竞争处理机的权利。
(2)交换调度。又称中级调度。
(3)进程调度。又称微观调度或低级调度。
(4)线程调度。
4.2 作业调度
1.作业调度的功能
(1)记录系统中各作业的状况,包括执行阶段的有关情况。
(2)从后备队列中挑选出一部分作业投入执行。
(3)为被选中作业做好执行前的准备工作。
(4)在作业执行结束时做善后处理工作。
2.调度目标
(1)对所有作业应该是公平合理的。
(2)应使设备有高的利用率。
(3)每天执行尽可能多的作业。(吞吐量大)
(4)有快的响应时间。
3.衡量调度策略优劣的标准
- 周转时间
作业i的周转时间Ti为 Ti=Tei-Tsi
其中Tei为作业i的完成时间,Tsi为作业的提交时间
平均周转时间
- 带权周转时间
带权周转时间是作业周转时间与作业执行时间的比:
平均带权周转时间
4.3 进程调度
1.进程调度的具体功能: - 记录系统中所有进程的执行情况
进程调度模块通过PCB变化来掌控系统中所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据处理机。 - 选择占用处理机的进程
- 进行进程上下文切换
2.进程调度的方式
* 抢占方式
* 非抢占方式
- 优先权原则
- 短进程优先原则
- 时间片原则
3.引起进程调度的原因有以下几类:
(1)正在执行的进程执行完毕或由于某种错误而终止运行(陷阱或中断)。
(2)执行中进程自己调用阻塞原语将自己阻塞起来进人睡眠等待状态。
(3)执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用了V原语操作激活了等待资源的进程队列。
(4)执行中进程提出I/O请求后被阻塞。
(5)在分时系统中时间片已经用完。
(6)在执行完系统调用,在系统程序返回用户进程时,可认为系统进程执行完毕,从而可调度选择一个新的用户进程执行。
以上都是在CPU执行不可剥夺方式下所引起进程调度的原因。
在CPU执行方式是可剥夺时,还有以下的原因:
(7)就绪队列中的某进程的优先级变得高于当前执行进程的优先级,从而也将引发进程调度。
4.4 调度算法
1.先来先服务(FCFS)调度算法
直观看,该算法在一般意义下是公平的。即每个作业或进程都按照它们在队列中等待的时间长短来决定它们是否优先享受服务。不过对于那些执行时间较短的作业或进程来说,如果它们在某些执行时间很长的作业或进程之后到达,则它们将等待很长的时间。
2.轮转法
轮转法的基本概念是将CPU的处理时间分成固定大小的时间片。
如果一个进程在被调度选中之后用完了系统规定的时间片,但未完成要求的任务,则它自行释放自己所占有的CPU而排到就绪队列的末尾,等待下一次调度。同时,进程调度程序又去调度当前就绪队列中的第一个进程或作业。
在轮转法中,时间片长度的选取非常重要。
3.多级反馈轮转法
在轮转法中,加入到就绪队列的进程有3种情况:
第一种是分给它的时间片用完,但进程还未完成,回到就绪队列的未尾等待下次调度再继续执行。
第二种情况是分给这进程的时间并未用完,只是因为请求I/O或由于进程的互斥与同步关系而被阻塞。
第三种情况就是新创建进程进入就绪队列。
4.优先级法
* 静态优先级
* 动态优先级
5.最短作业优先法
虽然系统开销小,算法简单,但是,如果估计执行时间很短的作业是在那些长作业的后面到达系统的话,则必须等待长作业执行完成之后才有机会获得执行。这将造成不必要的等待和某种不公平。
6.最高响应比优先法
HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。
4.6 实时系统调度方法
1.根据对处理外部事件的时限(deadline)要求,实时系统中处理的外部事件可分为硬实时任务(hard real time task)和软实时任务(soft real time task).硬实时任务要求系统必须完全满足任务的时限要求;牧实时任务厕充许系统对任务的时限要求有一定的延迟,其时限要求只是一个相对条件。