当前位置:文档之家› 典型调度算法讲解

典型调度算法讲解

时间片的长短通常由以下四个因素确定:
(1)系统的响应时间。在进程数目一定时,时间片的长短直接 正比于系统对响应时间的要求。
(2)就绪队列进程的数目。当系统要求的响应时间一定时,时 间片的大小反比于就绪队列中的进程数。
(3)进程的转换时间。若执行进程调度时的转换时间为t,时 间片为q,为保证系统开销不大于某个标准,应使比值t/q不大 于某一数值,如1/10。 (4)CPU运行指令速度。CPU运行速度快,则时间片可以短些; 反之,则应取长些。
先来先服务调度算法的特点是算法简单,但效率较低;有 利于长作业,但对短作业不利;有利于CPU繁忙型作业, 而不利于I/O繁忙型作业
最短作业优先法
短作业优先(SJF)调度算法用于进程调度时称为 短进程优先调度算法,该调度算法主要用于作业 调度。其实现思想是:从作业的后备队列中挑选 那些需要运行的时间(估计值)最短的作业放入 内存。这是一种非抢占式的策略。系统一旦选中 某个短作业后,就让该作业投入执行,直到该作 业完成并退出系统。如果有四个作业A,B,C, D。它们的预计运行时间分别为6,3,15,8个时 间单位,利用最短作业优先法调度,它们的执行 顺序是:B->A->D->C。
行例时1:间假依设次系是统24中,有3,3个3(进单程位P1,为Pm2s和)Pห้องสมุดไป่ตู้3,如它果们进的程运 P调1,度P算2,法P计3依算次其在平0均,1,2等时待刻时到间达。,并且采用FCFS
进程
时间(ms)
0
24 27
30
(a)
P1
P2
P3
(b)
3个进程执行的甘特图
FCFS调度算法性能表
进程
到达时 运行时 开始时 完成时 周转时 带权周
此作业流的平均带权周转时间W=(1+3.4+3.5+3.75)/4=2.9125h
作业(10月24号)
系统有5个进程,其到达时间,运行时间如下表所 示,若采用先来先服务,最短作业,最高响应比优 先,时间片轮转调度算法(时间片q=1),计算相关 的平均周转时间和平均带权周转时间。
进程号 P1 P2 P3 P4 P5
最短作业优先调度算法的调度性能
作业
提交时 间
运行时 间/h
开始时 间
完成时 间
周转时 间/h
带权周 转时间
A 5:00
2
5:00 7:00 2.0
1
B 6:00 0.5 7:36 8:06
2.1
4.2
C 6:30 0.2 7:00 7:12
0.7
3.5
D 6:36 0.4 7:12 7:36
1.0





转时间
P1
0
24
0
24
24
1
P2
1
3
24
27
26
8.67
P3
2
3
27
30
28
9.33
平均周转时间=(24+26+28)/3=26 平均带权周转时间=(1+8.67+9.33)/3=6.33
进程P1的等待时间是0ms,进程P2的等待时间是23ms,P3 的等待时间是25ms。这样,平均等待时间是(0+23+25)
最高响应比优先法的调度性能
作业号 A
提交时 间
5:00
运行时 间/h
2
开始时 间
5:00
完成时 间/h
7:00
周转时 间/h
2.0
带权周 转时间
1
B
6:00
0.5
7:12
7:42
1.7
3.4
C
6:30
0.2
7:00
7:12
0.7
3.5
D
6:36
0.4
7:42
8:06
1.5
3.75
由此:此作业流的平均周转时间T=(2.0+1.7+0.7+1.5)/4=1.475h
到达时间 0 2 4 6 8
运行时间 3 6 4 5 2
答题格式如下 解:采用***调度算法,执行进程次序{*,*,*,*,*},其调度性能如下表
进程号
到达时间
运行时间
等待时间
开始时间
结束时间
周转时间
带权周转 时间
平均
提醒1:采用响应比算法时,必须计算不同时刻各进程的响应比。要求步骤 提醒2:采用时间片算法时,其执行进程次序不写,且调度性能表在上述表格 基础上去除“等待时间”这一列。
最高响应优先法
以例2为例,由于作业A的开始时间是5:00,而其余作业均 未到达,故先运行作业A。当作业A运行完毕,计算后备 队列中作业B,C,D的响应比。计算如下 作业B:R=(W+T)/T=(1+0.5)/0.5=3 作业C:R=(W+T)/T=(0.5+0.2)/0.2=3.5 作业D:R=(W+T)/T=(0.4+0.4)/0.4=2 可见作业C的响应最高,选择作业C运行,故作业C的开 始时间为作业A的完成时间,即7:00,当作业C运行完毕, 计算后备队列作业B,D的响应比,计算如下 作业B:R=(W+T)/T=(1.2+0.5)/0.5=3.4 作业D:R=(W+T)/T=(0.6+0.4)/0.4=2.5 显然这次应该选择作业B,故作业B的开始时间是作业C 的完成时间,即7:12,最后运行作业D。故作业的次序 是A,C,B,D
先来先服务调度算法
先来先服务(FCFS)调度算法是一种最简单 的调度算法,该调度算法既可以用于作业调度也 可以用于进程调度。
在作业调度中,先来先服务调度算法每次从 后备作业队列中选择最先进入该队列的一个或几 个作业,将它们调入内存,分配必要的资源,创 建进程并放入就绪队列。
在进程调度中,先来先服务调度算法每次从 就绪队列中选择最先进入该队列的进程,将处理 机分配给它,使之投入运行,该进程一直运行下 去,直到完成或某种原因而阻塞时才释放处理机。
/3=16ms
如果进程到达的顺序是P2,P3,P1,那么得到的平均等待 时间是(4+0+2)/3=2ms。平均等待时间很明显地减少了。 因而,FCFS策略下的平均等待时间通常不是最小的,而且 如果进程的执行时间有明显的变化时平均时间也会有明显 的变化。
FCFS调度算法是非抢占式的。一旦CPU被分配给一个进程, 该进程将持有CPU直到它释放CPU(通过终止或请求 I/O)。对分时系统来说,FCFS算法尤其糟糕,因为这种 系统中的每个用户以有规则的时间间隔共享CPU。允许一 个进程长期地占有CPU会产生灾难性的后果。
25 26
t
时间片
时间片 q=1
时间片 q=4
进程名 A B C D
A B C D
到达时 运行时 开始时 完成时 周转时





0
12
0
26
26
0
5
1
17
17
0
3
2
11
11
0
6
3
20
20
平均周转时间T=18.5 平均带权周转时间W=3.14
0
12
0
26
26
0
5
4
20
20
0
3
8
11
11
0
6
11
22
2.5
由此:此作业流的平均周转时间为
T=(2.0+2.1+0.7+1.0)/4=1.45h。此作业流的平均带权周转 时间为W=(1.0+4.2+3.5+2.5)/4=2.8h。
通过以上分析,虽然这种算法易于实现,且效率也比较
高,但未考虑长作业的利益
轮转法(Round-Robin,RR)
时间片是一个很小的时间单位,通常为10~100ms 数量级。当进程用完分给它的时间片后,系统的 计时器发出时钟中断,调度程序便停止该进程的 运行,并把它放入就绪队列的末尾;然后,把 CPU分给就绪队列的队首进程,同样也让它运行 一个时间片,如果往复。
例2 假设系统中有4个作业A,B,C,D。 下表给出了提交时间和运行时间
作业 A B C D
提交时间 5:00 6:00 6:30 6:36
运行时间/h 2 0.5 0.2 0.4
由于作业A的开始时间是5:00,而其余作业 均未到达,故先运行作业A,当作业A运行完毕, 其余作业均按短作业优先运行。所以作业运行次 序为:A,C,D,B。
22
平均周转时间T=19.75 平均带权周转时间W=3.38
带权周 转时间
2.17 3.4 3.67 3.33
2.17 4
3.67 3.67
RR调度算法的性能指标
可见,时间片的大小对轮转法的性能有很大的影响。如果时间 片太长,每个进程都在这段时间运行完毕,那么时间轮转法就 退化为先来先服务算法,这样对用户的响应时间必然会加长。 如果时间片太短,CPU在进程间的切换工作就非常频繁,从而 导致系统开销增加,因为在每个时间片末尾都产生时钟中断。 操作系统要处理这个中断,在把CPU分给另一个进程之前,要 为“老”的进程保留全部寄存器的内容,还要为新选中的进程 装配所有寄存器的值,这一工作无疑加大了系统开销。
例3:考虑如下四个进程A,B,C,D的执行情况。 设它们依次进入就绪队列,但彼此相差时间很短, 可以近似认为“同时”到达队列。四个进程分别 需要运行12,5,3和6个时间单位。下图为时间片 q等于1和等于4时它们运行情况。
进程
D
C q=4
相关主题