典型调度算法讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
? 时间片的长短通常由以下四个因素确定:
(1)系统的响应时间。在进程数目一定时,时间片的长短直接 正比于系统对响应时间的要求。
(2)就绪队列进程的数目。当系统要求的响应时间一定时,时 间片的大小反比于就绪队列中的进程数。
(3)进程的转换时间。若执行进程调度时的转换时间为 t,时 间片为q,为保证系统开销不大于某个标准,应使比值 t/q不大 于某一数值,如 1/10。
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
由此:此作业流的平均周转时间为 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分给就绪队列的队首进程,同样也让它运行 一个时间片,如果往复。
最短作业优先调度算法的调度性能
作业
提交时 间
运行时 间/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
2.5
? 例3:考虑如下四个进程 A,B,C,D的执行情况。 设它们依次进入就绪队列,但彼此相差时间很短, 可以近似认为“同时”到达队列。四个进程分别 需要运行 12,5,3和6个时间单位。下图为时间片 q等于 1和等于 4时它们运行情况。
进程
D
C q=4
B A
D q=1 C
B A
0
5
10
15
20
RR法(q=1和q=4时进程的运行情况)
? 先来先服务调度算法的特点是算法简单,但效率较低;有 利于长作业,但对短作业不利;有利于CPU繁忙型作业, 而不利于I/O繁忙型作业
最短作业优先法
? 短作业优先( SJF)调度算法用于进程调度时称为 短进程优先调度算法,该调度算法主要用于作业 调度。其实现思想是:从作业的后备队列中挑选 那些需要运行的时间(估计值)最短的作业放入 内存。这是一种非抢占式的策略。系统一旦选中 某个短作业后,就让该作业投入执行,直到该作 业完成并退出系统。如果有四个作业 A,B,C, D。它们的预计运行时间分别为 6,3,15,8个时 间单位,利用最短作业优先法调度,它们的执行 顺序是:B->A->D->C 。





转时间
Βιβλιοθήκη BaiduP1
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)
? 例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。
/3=16ms
? 如果进程到达的顺序是P2,P3,P1,那么得到的平均等待 时间是(4+0+2)/3=2ms。平均等待时间很明显地减少了。 因而,FCFS策略下的平均等待时间通常不是最小的,而且 如果进程的执行时间有明显的变化时平均时间也会有明显 的变化。
? FCFS调度算法是非抢占式的。一旦CPU被分配给一个进程, 该进程将持有CPU直到它释放CPU(通过终止或请求 I/O)。对分时系统来说,FCFS算法尤其糟糕,因为这种 系统中的每个用户以有规则的时间间隔共享CPU。允许一 个进程长期地占有CPU会产生灾难性的后果。
行例时1:间假依设次系是统2中4,有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 调度算法性能表
进程
到达时 运行时 开始时 完成时 周转时 带权周
先来先服务调度算法
先来先服务( FCFS)调度算法是一种最简单 的调度算法,该调度算法既可以用于作业调度也 可以用于进程调度。
在作业调度中,先来先服务调度算法每次从 后备作业队列中选择最先进入该队列的一个或几 个作业,将它们调入内存,分配必要的资源,创 建进程并放入就绪队列。
在进程调度中,先来先服务调度算法每次从 就绪队列中选择最先进入该队列的进程,将处理 机分配给它,使之投入运行,该进程一直运行下 去,直到完成或某种原因而阻塞时才释放处理机。
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分给另一个进程之前,要 为“老”的进程保留全部寄存器的内容,还要为新选中的进程 装配所有寄存器的值,这一工作无疑加大了系统开销。
相关文档
最新文档