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