操作系统概念 第六章:CPU调度

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统概念
第六章:CPU调度
CPU调度
要解决的问题 WHAT:按什么原则分配CPU —进程调度算法 WHEN:何时分配CPU —进程调度的时机 HOW: 如何分配CPU —CPU调度过程(进程的上下文切换)
2
Shandong University Shandong University
本章主要内容
Shandong University Shandong University
4
CPU区间和I/O区间的交替序列
Shandong University Shandong University
5
CPU区间时间直方图
Shandong University Shandong University
6
CPU调度程序
SJF是一种特定的优先权调度方法
26
优先级调度(Priority Scheduling)
有以下的进程和其CPU区间时间 进程 运行时间 优先权 P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2
Shandong University Shandong University
P2 0 1
调度程序从内存中就绪可执行的进程里选择一个,并 为其中之一分配CPU。 CPU调度决策可以如下四种情况下发生
1. 2. 3. 4.
Shandong University Shandong University
当一个进程从运行状态切换到等待状态 当一个进程从运行状态切换到就绪状态 当一个进程从等待状态切换到就绪状态 当一个进程终止时。
假设进程按P1、P2、P3的顺序到达。则该调度的 Gantt图如下:
P1 0 24 P2 27 P3 30
等待时间:P1 = 0; P2 = 24; P3 = 27 平均等待时间: (0 + 24 + 27) / 3 = 17
13
先到先服务调度(FCFS)
假设进程按P2, P3, P1的顺序到来,则其调度的Gannt 图如下
P2 0 3 P3 6 P1 30
Shandong University Shandong University
等待时间:P1 = 6; P2 = 0; P3 = 3 平均等待时间: (6 + 0 + 3) / 3 = 3 优于前一种情况 由于所有其他进程都等待一个大进程释放CPU,就会 产生护航效应(convoy effect)。与可能允许较短进 程先行相比,这种效果会导致CPU和设备的使用率变 14 得更低
Shandong University Shandong University
分派延迟(dispatch latency) - 分派程序停 止一个进程而启动另一个进程执行所要花费的 时间。
8
6.2 调度准则(Scheduling Criteria)
CPU使用率 使用率:使CPU尽可能忙 使用率 吞吐量(Throughput):单位时间完成进程的 吞吐量 数量 周转时间(Turnaround time):从进程提交到 周转时间 进程完成的时间间隔称为周转时间(等待进入 内存、就绪队列、cpu执行、I/O执行) 等待时间(Waiting time):是在就绪队列中 等待时间 等待所花时间之和。 响应时间(Response time):从提交请求到 响应时间 产生第一响应的时间。
当调度只能发生在第一和第四两种情况时,称调度方 法是非抢占的(nonpreemptive) 否则调度方案就是可抢占(preemptive)的。
7
分派程序(Dispatcher)
分派程序是一个模块,用来将CPU的控制交给 由短期调度程序所选择的进程。其功能包括
切换上下文 切换到用户模式 跳转到用户程序的合适位置以重新启动这个程 序
11
Shandong University Shandong University
Gantt Chart
Shandong University Shandong University
12
先到先服务调度(FCFS)
进程 P1 P2 P3 区间时间 24 3 3
Shandong University Shandong University
P5 6
P1 16
P3
P4 18 29
27
优先级调度(Priority Scheduling)
该算法存在的问题:无穷阻塞(indefinite blocking)或者称为饥饿(starvation)
低优先权的进程可能永远无法执行
Shandong University Shandong University
平均等待时间:7ms
SJF是最佳的:对于给定的一组进程,SJF算法的平 均等待时间最小。
17
确定下一CPU区间的长度
只能估计CPU区间的长度,无法精确计算 下一CPU区间的长度通常可预测为以前CPU区 间的测量长度的指数平均
1. t n = actual lenght of n th CPU burst 2. τ n +1 = predicted value for the next CPU burst 3. α , 0 ≤ α ≤ 1 4. Define :
25
Shandong University Shandong University
优先级调度(Priority Scheduling)
每个进程被赋予一个优先级数字(优先权) CPU分配给优先权高的进程(优先级数字越小, 则优先权越大)
抢占式 非抢占式
Shandong University Shandong University
解决办法:老化(aging)
随着时间的推进,进程的优先权逐渐提高
28
轮转法调度(Round Robin)
轮转法是专门为分时系统而设计的。每个进程 获得一小片CPU时间量(time quantum),通 常为10-100毫秒。时间片结束后,进程被抢占 并放入到就绪队列的最后重新参加调度。 如果就绪队列中有n个进程,具时间片为q,则 每个进程会得到1/n的CPU时间,每个长度不 超过q时间单元。每个进程必须等待CPU的时 间不会超过(n-1)q个时间单元,直到它的下一 个时间片为止。
α =1
τn+1 = tn Only the actual last CPU burst counts.
If we expand the formula, we get:
τn+1 = α tn+(1 - α) α t n-1 + … +(1 - α )j α t n-j + … +(1 - α )n+1τ0
29
Shandong University Shandong University
轮转法调度(Round Robin)
有以下的进程和其CPU区间时间 进程 运行时间 P1 24 P2 3 P3 3 时间片如果是4ms
Shandong University Shandong University
P1 0 4
基本概念 调度准则 调度算法 多处理器调度 实时调度 算法评估 进程调度模型
Shandong University Shandong University
3
6.1 基本概念
利用多道程序最大化CPU使用率。 CPU – I/O周期 - 进程执行由CPU执行和I/O 等待周期组成。 CPU区间分布情况
20
最短作业优先调度(Shortest-Job-First, SJR)
两种方式
非抢占式:一旦进程获得CPU就一直占据CPU, 直到其CPU区间完成为止 抢占式:如果一个新来的进程其CPU区间小于 当前进程的CPU区间,则抢占之。这种调度方 式称为最短剩余时间作业优先(Shortest Remaining Time First, SRTF)
32
时间片与上下文切换开销
Shandong University Shandong University
q必须大于上下文切换所需时间
33
周转时间随时间片大小而改变
Shandong University Shandong University
Since both α and (1 - α) are less than or equal to 1, each successive term has less weight than its predecessor.
19
下一个CPU区间长度的预测
Shandong University Shandong University
22
非抢占式SJF的实例
Shandong University Shandong University
23
抢占式SJF的实例
Shandong University Shandong University
24
最短作业优先调度
SJF调度算法也存在不容忽视的缺点: 该算法对长作业不利。如果有一长作业(进程)进入 系统的后备队列(就绪队列),由于调度程序总是优 先调度那些(即使是后进来的)短作业(进程),将导 致长作业(进程)长期不被调度,也就是说长作业可 能被饿死。 由于作业(进程)的长短只是根据用户所提供的估计 执行时间而定的,而用户又可能会有意或无意地缩 短其作业的估计运行时间,致使该算法不一定能真 正做到短作业优先调度 该算法完全未考虑作业的紧迫程度,因而不能保证 紧迫性作业(进程)会被及时处理。。
先到先服务调度(First Come, First Served, FCFS) 最短作业优先调度(Shortest-Job-First, SJR) 优先权调度(Priority Scheduling) 轮转法调度(Round Robin, RR) 多级队列调度(multilevel queue-scheduling) 多级反馈队列调度(multilevel feedback queue scheduling)
P2 7
P3 10
P1 14
P1 18
P1 22
P1 26
P1 30
30
时间片=20时的RR实例
Shandong University Shandong University
31
Shandong University Shandong University
性能依赖于时间片的大小 如果时间片非常大(无限),那么RR策略 与FCFS策略一样。 如果时间片很小,那么RR方法称处理器共 享。n个进程对于用户来说都有它自己的处 理器,速度各为真正处理器速度的1/n
9
Shandong University Shandong University
优化准则(Optimization Criteria)
最大化CPU使用率 最大化吞吐量 最小化周转时间 最小化等待时间 最小化响应时间
Shandong University Shandong University
10
6.3 调度算法
Shandong University Shandong University
21
抢占wenku.baidu.com调度
有以下的进程和其CPU区间时间 进程 到达时间 区间时间 P1 0 8 P2 1 4 P3 2 9 P4 3 5
P1 0 1 P2 5 P4 10 P1 17 P3 26
Shandong University Shandong University
Shandong University Shandong University
τ n +1 = α t n + (1 − α )τ n .
18
指数平均计算的实例
α =0
τn+1 = τn Recent history does not count.
Shandong University Shandong University
Shandong University Shandong University
16
最短作业优先调度
有以下的进程和其CPU区间时间 进程 区间时间 P1 6 P2 8 P3 7 P4 3
P4 0 3 P1 9 P3 16 P2 24
Shandong University Shandong University
先到先服务调度(FCFS)
Shandong University Shandong University
特点:
“公平”; 短作业等待时间长。
15
最短作业优先调度(Shortest-Job-First, SJR)
将每个进程与其下一个CPU区间段相关联。当 CPU为可用时,它会赋给具有最短后续CPU区 间的进程。如果两个进程具有同样长度的CPU 区间,那么可以使用FCFS调度来处理。
相关文档
最新文档