第四章 处理机调度
处理机调度-调度算法

处理机调度-调度算法处理机调度-调度算法先来先服务(FCFS)调度算法概念将⽤户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,按照先来先服务的⽅式进⾏调度处理。
公平性1.直观看,该算法在⼀般意义下是公平的。
即每个作业或进程都按照它们在队列中等待时间长短决定它们是否优先享受服务2.但如果执⾏时间较短的作业或进程在某些执⾏时间很长的作业或进程之后到达,则它们将等待很长时间轮转法基本思路基本思路是让每个进程在就绪队列中的等待时间与享受服务的时间成⽐例过程将CPU的处理时间分成固定⼤⼩的时间⽚。
如果⼀个进程在被调度选中之后⽤完了系统规定的时间⽚,但未完成要求的任务,则它⾃⾏释放⾃⼰所占有的CPU⽽排到就绪队列的末尾,等待下⼀次调度。
同时,进程调度程序⼜去调度当前就绪队列中的第⼀个进程或作业。
轮转法只能调度可抢占资源轮转法只能⽤来调度分配那些可以抢占的资源。
将它们随时剥夺再分配给别的进程例⼦:CPU是可抢占资源的⼀种但如打印机等资源是不可抢占的作业调度不使⽤轮转法:由于作业调度是对除了CPU之外的所有系统硬件资源的分配,其中包含有不可抢占资源,所以作业调度不使⽤轮转法轮转法的时间⽚选取问题时间⽚长度的选择会直接影响系统开销和响应时间过短的问题:如果时间⽚长度过短,则调度程序剥夺处理机的次数增多。
这将使进程上下⽂切换次数也⼤⼤增加,从⽽加重系统开销过长的问题:如果时间⽚长度选择过长,例如⼀个时间⽚能保证就绪队列中所需执⾏时间最长的进程能执⾏完毕,则轮转法变成了先来先服务法由于时间⽚的选取要满⾜相应时间的要求,所以是有如下的关系:q=R/NmaxR:系统对响应时间的要求RNmax:就绪队列中所允许的最⼤进程数Nmax相应的关系:1.在q为常数的情况下,如果就绪队列中的进程数远⼩于Nmax,则响应时间R看上去会⼤⼤减⼩2.由于q值固定,从⽽进程上下⽂切换的时机不变,系统开销也不变。
3.CPU的整个执⾏时间等于各进程执⾏时间加上系统开销。
Operating System处理机调度

非抢占短优先调度示例
Process Arrival Time
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
4
• SJF (non-preemptive)
Burst Time
P1
P3
P2
P4
0
3
78
12
16
• 平均等待时间 = (0 + 6 + 3 + 7)/4 = 4
优先级调度
• 每个进程都具有优先度 (integer) • 优先级最高的先被执行(数字越小表示优先级越高)
中每个进程获得CPU时间为 1/n. 没有进程等待时间超过 (n-1)q
• 性能
– q large FIFO – q small q must be large with respect to context
switch, otherwise overhead is too high.
示例: RR (时间片为20)
止或它从运行状态转换到等待状态才会释放CPU。
调度员
• 调度模型 gives control of the CPU to the process selected
by the short-term scheduler; this involves: – 上下文切换 – 处理机状态变为User,而以前是Kernel. – 跳转到执行程序的适当位置重新执行此程序。
processor makes its own scheduling decisions.(自调度,实现复 杂)
• Asymmetric multiprocessing(非对称多处理)– only one
操作系统-第四章调度

长程调度
就绪队列 长程调度 处理机 后备队列 短程调度 就绪/挂起队列
交互用户
进程调度算法---先来先服务(FCFS)
• 该方法按照到达的先后顺序排队, 每次调 度队首的进程 • FCFS算法属于非剥夺调度方式, 实现简单 , 看似公平 • 但,对于那些后进入队列而运行时间较短 的进程,或I/O型的进程而言,可能需要长 时间等待
响应比高者优先
• 同短进程优先和剩余时间最短者优先调度 算法一样,很难准确估计进程的预期执行 时间 • 每次调度之前都需要计算响应比,增加了 系统开销
反馈调度方法
• 前面介绍的几种调度方法都存在各自不同的问题 ,尤其是短进程优先,剩余时间最短者优先 以及 响应比高者优先调度算法,都需要估计进程的预 期执行时间,如果估计不准确,将影响调度结果 和系统性能 • 如果根据进程执行历史,而非未来,进行调度, 将解决这个问题 • 就是一种根据进程执行历史调整调度方法的调度 方法,它结合了优先级和时间片轮转调度思想.
基于优先级的调度算法
• 基于时间片轮转调度算法循环式的为每个 被调度的进程分配一个时间片,对每个进程 都是公平的 • 然而,实际应用中,进程的性质可能是不同 的,例如,一个与用户进程小户的前台进程急 迫的需要对用户的输入作出响应,而一个后 台打印机进程的迫切性也许就不那么重要 • 因此可以为每个进程定义一个优先级,优先 级越高的进程将优先获得处理机的调度
调度目标
• 满足用户的要求:
– 响应时间,周转时间,截止直接
• 满足系统的需求:
– 系统吞吐量,处理机利用率,各类资源的平衡 使用,公平性及优先级
第四章Operating System处理机管理

2. 面向系统的调度性能准则 吞吐量:单位时间内所完成的作业数, 吞吐量:单位时间内所完成的作业数,跟作 业本身特性和调度算法都有关系-- --批处理 业本身特性和调度算法都有关系--批处理 系统 处理机利用率:-- :--大中型主机 处理机利用率:--大中型主机 各种设备的均衡利用: 各种设备的均衡利用:如CPU繁忙的作业和 繁忙的作业和 I/O繁忙(指次数多,每次时间短)的作业搭 繁忙( 繁忙 指次数多,每次时间短) --大中型主机 配--大中型主机 3. 调度算法本身的调度性能准则 易于实现 执行开销小
2. 时间片长度的确定
时间片长度变化的影响
– 过长->退化为 过长- 退化为 退化为FCFS算法,进程在一个时间片内都执行 算法, 算法
完,响应时间长。 响应时间长。 – 过短->用户的一次请求需要多个时间片才能处理完,上 过短- 用户的一次请求需要多个时间片才能处理完 用户的一次请求需要多个时间片才能处理完, 下文切换次数增加,响应时间长。 下文切换次数增加,响应时间长。
4.2.4.3 线性优先级调度算法 Robin) (SRR, Selfish Round Robin)
统吞吐量
低级调度也称微观调度,从处理机资源分配的角度来看, 低级调度也称微观调度,从处理机资源分配的角度来看, 处理机需要经常选择就绪进程或线程进入运行状态, 处理机需要经常选择就绪进程或线程进入运行状态,低级 调度的时间尺度通常是毫秒级的。 调度的时间尺度通常是毫秒级的。由于低级调度算法的频 繁使用,要求在实现时做到高效 繁使用,
4.2.4.1 静态优先级
创建进程时就确定,直到进程终止前都不改变。通常 创建进程时就确定,直到进程终止前都不改变。 是一个整数。 是一个整数。
操作系统原理第四章 处理机调度习题

第四章处理机调度4.3 习题4.3.1 选择最合适的答案1.某系统采用了银行家算法,则下列叙述正确的是()。
A.系统处于不安全状态时一定会发生死锁B.系统处于不安全状态时可能会发生死锁C.系统处于安全状态时可能会发生死锁D.系统处于安全状态时一定会发生死锁2.银行家算法中的数据结构包括有可利用资源向量Available、最大需求矩阵Max、分配矩阵Allocation、需求矩阵Need,下列选项正确的是()。
A.Max[i,j]=Allocation[i,j]+Need[i,j]B.Need[i,j]= Allocation[i,j]+ Max[i,j]C.Max[i,j]= Available[i,j]+Need[i,j]D.Need[i,j]= Available[i,j]+ Max[i,j]3.下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
A.非抢占式静态优先权法B.抢占式静态优先权法C.时间片轮转调度算法D.非抢占式动态优先权法4.在下列选项中,属于预防死锁的方法是()。
A.剥夺资源法B.资源分配图简化法C.资源随意分配D.银行家算法5.在下列选项中,属于检测死锁的方法是()。
A.银行家算法B.消进程法C.资源静态分配法D.资源分配图简化法6.在下列选项中,属于解除死锁的方法是()。
A.剥夺资源法 B.资源分配图简化法C.银行家算法 D.资源静态分配法7.为了照顾紧迫型作业,应采用()。
A.先来服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.优先权调度算法8.在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。
A.先来先服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.长作业优先调度算法9.作业从后备作业到被调度程序选中的时间称为()。
A.周转时间B.响应时间C.等待调度时间D.运行时间10.资源静态分配法可以预防死锁的发生,它们使死锁四个条件中的()不成立。
第四章 操作系统处理机调试(张尧学)

等待事件
4.1.2 作业与进程
作业是用户向计算机提交任务的任务实体 进程是计算机为了完成用户任务实体而设置
的执行实体,是系统分配资源的基本单位
第四章 处第理9机页调度
4.2 作业调度
作业调度主要是完成作业从后备状态到执行状态的转 变,以及从执行状态到完成状态的转变
第四章 处第理1机0页调度
第四章 处第理1机9页调度
4.3.2 进程调度的时机
(1) 正在执行的进程执行完毕。 (2) 执行中进程自己调用阻塞原语将自己阻塞起来进入睡眠等待状态。 (3) 执行中进程调用了P原语操作,从而因资源不足而被阻塞;或调用
了V原语操作激活了等待资源的进程队列。 (4) 执行中进程提出I/O请求后被阻塞。 (5) 在分时系统中时间片已经用完。 (6) 在执行完系统调用
第四章 处第理1机2页调度
图4.3 作业调度中状态的转换过程 第四章 处第理1机3页调度
4.2.2 作业调度目标与性能衡量
作业调度的功能最主要的是从后备作业队列中选取一批作 业进入执行状态。
调度目标主要是以下4点: (1) 对所有作业应该是公平合理的; (2) 应使设备有高的利用率; (3) 每天执行尽可能多的作业; (4) 有较快的响应时间。
主要功能是按照一定的策略选择一个处于就绪状态的进程, 使其获得处理机执行。根据不同的系统设计目的,有各种各样 的选择策略,例如系统开销较少的静态优先数调度法,适合于 分时系统的轮转法和多级反馈轮转法等。这些选择策略决定了 调度算法的性能 (3) 进行进程上下文切换
一个进程的上下文(context)包括进程的状态、有关变量 和数据结构的值、硬件寄存器的值和PCB以及有关程序等
高级调度"。从用户工作流程的角度,一次提交的若干个流程, 其中每个程序按照进程调度。时间上通常是分钟、小时或天 (2) 交换调度:中级调度,从存储器资源的角度。将进程的部分 或全部换出到外存上,将当前所需部分换入到内存。指令和数据 必须在内存里才能被CPU直接访问。 (3)进程或线程调度:低级调度(微观调度),又称为"微观调度 "、"低级调度"。从CPU资源的角度,执行的单位。时间上通常 是毫秒。因为执行频繁,要求在实现时达到高效率
逄 第四章处理机调度习题课

进入时间 离开时间 周转时间 执行时间 带权 周转时间
1 2 3 4 5
0 0 0 0 0
10 11 13 14 19
10 11 13 14 19
13.4
10 1 2 1 5
1 11 6.5 14 3.8
7.26
0 J1 J2 J3 J4 J5
2
4
6
8
10 12 14 16 18 20 T
RR
0 J1 J2 J3 J4 J5
解: 先调度作业1 1)先调度作业1。 周转时间为T1=Tw1+Tr1=0+2.0=2.0 周转时间为T1=Tw1+Tr1=0+2.0=2.0 带权周转时间为W1=2.0/2.0=1 带权周转时间为W1=2.0/2.0=1 在作业1运行的完成时刻10:00分别计算作业2 10:00分别计算作业 2)在作业1运行的完成时刻10:00分别计算作业2、3、4的响 应比R 应比R 作业2等待时间10:00 8:50=1时10分=1.17小时 10:00小时, ①作业2等待时间10:00-8:50=1时10分=1.17小时, R=1+1.17/0.5=3.34 作业3等待时间10:00 9:00=1时=1.0小时 10:00小时, ②作业3等待时间10:00-9:00=1时=1.0小时, R=1+1.0/0.1=11.0 ③作业4等待时间10:00-9:50=10分=0.17小时, 作业4等待时间10:00-9:50=10分=0.17小时, 10:00 小时 R=1+0.17/0.2=1.85 故应调度作业3,周转时间T3=1.0+0.1=1.1小时, 3,周转时间T3=1.0+0.1=1.1小时 故应调度作业3,周转时间T3=1.0+0.1=1.1小时,带权周转时间 W3=1.1/0.1=11.0
第四章--调度PPT课件

3、常用作业调度算法
先来先服务(First-Come First-Served:FCFS)
最早提交的作业最先调入内存
短作业优先(Shortest Job First :SJF) 运行时间最短的作业优先调入内存
最短剩余时间优先( Shortest Remaining Time Next:SRTN) 剩余运行时间最短的作业优先调度运行
23
系统中n个作业的平均周转时间为:
T
n
Ti
i1
1 n
带权周转时间W
W = T/R
T 为周转时间,R为实际运行时间。
平均带权周转时间:
Win1Wi1nin1TRii 1n
4.就绪等待时间:作业在就绪队列中的等待时间 5.响应时间:从提交第1个请求到产生第1个响应
所用的时间
4.5 调度算法
行某些进程
⑥ 开销 :系统开销不应太大
22
4.4.2 调度性能评价准则
1.CPU利用率:CPU价格昂贵 2.吞吐量:单位时间内CPU完成作业的数量 3.周转时间 从作业提交到作业完成的时间间隔就是周转时间。
Ti = tci - tsi tsi 表示作业i 的提交时间 tci 表示作业i 的完成时间。
15
4.3 进程调度
进程调度也叫低级调度 进程调度程序也叫低级调度程序,它完
成进程从就绪状态到运行状态的转换。 将一台物理CPU虚拟成多台CPU
16
4.3.1 进程调度的功能
(1)保存现场
进程放弃CPU时,进程调度程序需将现场信 息保存到PCB中
(2)挑选进程 (3)恢复现场
为选中的进程恢复现场信息,把CPU控制权 交给该进程。
10
提交状态
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开销
最小
可能高
可能高
不利于短作业和 不利于长作业 I/O繁忙型作业
作用 良好的均衡
“饥饿”问题
无
可能
无
4.3 进程调度
进程调度的主要任务是按照某种
算法选取一个就绪对列中的进程占用
处理机。
28
一、进程调度的功能
(1)记录系统中所有进程的执行情况;
(2)选择占有处理机的进程;
(3)进行进程上下文的切换。
此种算法有利于提高系统的吞吐量和
减少作业的平均周转时间。
19
响应比高者优先算法(HRN)
该算法是在进行作业调度时,系
统计算每个作业的响应比,响应比最 高的投入执行。
响应比R = 作业周转时间 / 作业处理时间 =(作业处理时间+作业等待时间)/ 作业处理时间 = 1 +(作业等待时间 / 作业处理时间)
当正在执行的进程由于某种原因要让出 处理机的时候,系统要做进程上下文切换。
29
二、进程上下文切换
一个进程让出处理器,由另一个进程占 用处理器的过程称为进程上下文切换。 进程的切换使系统中的各进程均有机会 占用CPU。 进程的切换是由进程状态的变化引起的, 而进程状态的变化又与出现中断事件有 关。
该算法中时间片的大小对计算机性能有 很大影响。
37
时间片轮转算法例题
系统有三个进程P1、P2、P3先后(但又 几乎同时到达),它们分别需要20、4和2个 单位时间运行完毕。如果采用时间片轮转调 度算法进行调度,它们的平均周转时间是多 少?
P1 P2 P3 P1 P2 P3 P1 P2 P1 P2 P1
43
多级反馈队列调度算法(2)
将就绪队列分为N级,每个就绪队列分配给不 同的时间片,队列级别越高,时间片越长,级 别越小,时间片越短; 系统从第一级调度,当第一级为空时,系统转 向第二个队列,.....当运行进程用完一个时 间片,放弃CPU时,进入下一级队列; 等待进程被唤醒时,进入原来的就绪队列; 当进程第一次就绪时,进入第一级队列
1 W= n
Ti × ri i 1
n
17
先来先服务算法(FCFS)
将用户作业按提交的先后顺序排成 队列,并按照先来先服务的方式进行 调度处理。
在实际的操作系统中,该算法一般 都不单独使用,而是与其他算法配合使用。
18
最短作业优先算法(SJF)
该算法是从后备队列中选择其估计 运行时间最短的作业,使之投入运 行。
30
进程(上下文)切换步骤
决定是否做上下文切换以及是否允许做。 保存CPU的上下文(包括程序计数器和其 它寄存器),以及其它相关信息到运行进 程的PCB中去。 把该进程移至合适的队列--就绪、阻塞队 列。 选择另一个要执行的进程。 恢复或装配所选进程的上下文,将CPU控 制权交给所选进程。 31
48
实时操作系统具有的能力
很快的进程或线程切换速度 快速的外部中断响应能力 基于优先级的固定点抢先式调度方式 和基于优先级的随时抢先式调度策略
是实时系统的主要调度策略。
49
时限调度算法
该算法是按照用户的时限要求顺序 设置优先级,优先级高的占据处理机。 此种调度是抢先式的。
此种算法可以用于周期性调度和非周 期性调度。
2
处理机
处理机是计算机系统中的重要 资源。 处理机调度算法对整个计算机 系统的综合性能指标有重要影响。
3
处理机调度的分类
按层次可把处理机调度分成三个层次: 高级调度 中级调度 低级调度
高级调度
也称为作业调度或宏观调度,通常在分时系
统和实时系统中没有作业调度。
因为在分时系统中为了缩短响应时间,作业
22
先来先服务调度算法计算结果
作业 进入时间 估计运行 开始时间 时间 (分钟) 120 8:00 8:00 50 8:50 10:00 10 9:00 10:50 20 9:50 11:00 作业平均周转时间 T = 112.5 作业带权平均周转时间 W = 4.975 结束时间 周转时间 (分钟) 120 120 120 90 450 带权周转 时间 1 2.4 12 4.5 19.9
JOB1 JOB2 JOB3 JOB4
10:00 11:20 10:10 10:30
最高响应比优先作业算法计算结果
比较项目算
法 调度方式 吞吐量
FCFS 非抢占式 不突出
SJF 非抢占式 高
HRN 非抢占式 高 提供良好的响应时 间
周转时间
可能很高,特别 对于短作业(进 在进程执行时间 程)提供良好的 有很大变化时 响应时间
14
二、作业调度算法
先来先服务算法(FCFS) 最短作业优先算法(SJF) 最高响应比优先算法(HRN) 优先级算法
15
作业调度算法性能的衡量
周转时间Ti Ti=Tei-Tsi=Twi+Tri 平均周转时间 T=(
Ti ) ×
i 1
n
1 n
16
作业调度算法性能的衡量
带权周转时间 Wi=Ti/Tri 平均带权周转时间
20
优先级算法
选择优先级高的作业首先得到调度 静态优先级 动态优先级
21
作业调度算法应用例子
假设在单道批处理环境下有四个作业, 已知它们进入系统的时间、估计运行 时间如下图所示, 应用先来先服务、 最短作业优先和最高响应比优先作业 调度算法,分别计算出作业的平均周 转时间和带权的平均周转时间
50
频率单调调度算法
该算法是一种被广泛用于多周期性
实时处理的调度算法。算法基本原理 是频率越低的任务优先级越低。 使用该算法的必要条件:
任务的执行时间<=任务周期
51
使用该算法的充分条件:
使用该算法的充分条件:
52
练习题:
一、判断题
1、短进程优先调度算法是从作业后备队列中 选择一个估计运行时间最短的作业调入内存 予以执行。 ( ×) 2、中级调度就是实现在外存上的进程与进程 之间的转换。 ( ×)
44
进程调度的例题
有三个进程A、B、C,它们先后(但又
几乎同时到达)进入就绪队列。它们的
CPU执行时间分别为21、6和3个单位时
间,如果按照FCFS和SPF算法进行调度,
它们的平均周转时间是多少?
45
4.4 实时系统调度
实时操作系统指系统能及时响应外
部事件的请求并且在规定的时间内
完成对该事件的处理,并控制所有 实时任务协调一致的运行。
面向系统的时候,需要考虑系统的吞吐 量和设备的利用率。
10
处理机调度的分类
按层次可把处理机调度分成三个层次: 高级调度 中级调度 低级调度
4.2 作业调度
12
4.2
作业调度
作业调度的主要任务是按一定的算法对外存输 入井上的大量后备作业进行选择,为选出的作业分配
资源,并建立进程,使进程进入就绪队列,等待进程
……..
P1
T1=26
T2=10
T3=6
38
最高优先权优先调度算法
该算法是把处理机分配给就绪队列
中具有最高优先权的进程。
此种算法的关键就是怎样确定进 程的优先权。静态法和动态法。
39
确定优先数的方法
静态优先数法: 在进程创建时指定优先数,在进程运行 时优先数不变 动态优先数法: 在进程创建时创立一个优先数,但在其 生命周期内优先数可以动态变化。如等 待时间长优先数可改变
第四章 处理机调度
4.1 处理机调度概述
4.2 作业调度
4.3 进程调度 4.4 实时系统调度
1
4.1 处理机调度概述
处理机调度(CPU调度)要解决的问题: WHAT:按什么原则分配CPU —调度算法 WHEN:何时分配CPU —调度的时机 HOW: 如何分配CPU —CPU调度过程(进程的上下文切换)
JOB1 JOB2 JOB3 JOB4
10:00 10:50 11:00 11:20
最短作业优先作业算法计算结果
作业 进入时间 估计运行 开始时间 时间 (分钟) 120 8:00 8:00 50 8:50 10:30 10 9:00 10:00 20 9:50 10:10 作业平均周转时间 T = 95 作业带权平均周转时间 W = 3.25 结束时间 周转时间 (分钟) 120 150 70 40 380 带权周转 时间 1 3 7 2 13
调度。
应用于批处理系统中或者通用操作 系统中的批处理部分
13
一、作业调度的功能
(1)记录系统中各作业的状况。利用作业控
制块JCB。 (2)从后备队列中选择一部分作业投入执行。 (3)为被选中的作业做好执行前的准备工作。 (4)在作业执行结束时做善后处理工作。
设计目标是最大限度地发挥各种资源的利 用率和保持系统内各种活动的充分并行。
46
实时操作系统的特点
有限等待时间—所有进程在处理事件 的时候都要在有限时间内开始。
有限响应时间—从响应外部事件开始, 必须在有限的时间内处理完毕。 用户控制—用户可以控制进程的优先 级。
47Biblioteka 实时操作系统的特点可靠性高 系统出错处理能力强—系统在出错 的时候,既能处理错误,又不影响 当前正在执行的用户使用。
35
最短进程优先调度算法(SPF)
从就绪队列中选出一个估计运行时 间最短的进程,把处理机分配给它, 使它立即执行。
此种算法能有效的降低进程的平均周
转时间和提高系统的吞吐量。
36
时间片轮转法
该算法中,系统将所有就绪进程按FIFO原则排 成一个环行队列,把CPU分配给队首进程,并规定 它执行一个时间片,当时间片用完的时候,系统剥 夺该进程处理机将它送入就绪队列的末尾,重新分 配给队列中新的队首进程。