当前位置:文档之家› 第四章 处理机调度

第四章 处理机调度


开销
最小
可能高
可能高
不利于短作业和 不利于长作业 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分配给队首进程,并规定 它执行一个时间片,当时间片用完的时候,系统剥 夺该进程处理机将它送入就绪队列的末尾,重新分 配给队列中新的队首进程。
相关主题