操作系统——处理机调度——调度算法应用举例
习题:在两道环境下有四个作业, 已知它们进入系统的时间、估计运行时间,系统采用短作业优先作业调度算法,作业被调度运行后不再退出, 当一新作业投入运行后,可按照作业运行时间长短调整作业执行的次序
请给出这四个作业的执行时间序列,并计算出平均周转时间及带权平均周转时间
作业 |
进入时间 |
估计运行时间(分钟) |
JOB1 |
10:00 |
30 |
JOB2 |
10:05 |
20 |
JOB3 |
10:10 |
5 |
JOB4 |
10:20 |
10 |
答:最短作业优先算法执行分析过程:
10:00,JOB1进入,只有一作业,JOB1被调入执行, 10:05,JOB2到达,最多允许两作业同时进入,所以JOB2也被调入;但是内存中有两作业,哪一个执行?题目规定当一新作业运行后,可按作业运行时间长短调整执行次序。即基于优先数可抢占式调度策略,优先数是根据作业估计运行时间大小来决定的,由于JOB2运行时间(20分)比JOB1少(到10:05,JOB1还需25分钟),所以JOB2运行,而JOB1等待;
10:10,JOB3到达输入井,内存已有两作业, JOB3不能马上进入内存; 10:20,JOB4也不能进入内存, 10:25,JOB2运行结束,退出,内存中剩下JOB1,输入井中有两作业JOB3和JOB4,如何调度?
作业调度算法:最短作业优先,因此JOB3进入内存,比较JOB1和JOB3运行时间, JOB3运行时间短,故JOB3运行,同样,JOB3退出后,下一个是JOB4, JOB4结束后,JOB1才能继续运行。
思考题
1、有5个进程P1,P2,P3,P4,P5,它们同时依次(一个接一个)进入就绪队列,它们的优先级和需要的处理时间如表:
写出分别采用先来先服务和非抢占式的优先级调度算法选中进程运行的次序,分别计算出上述两种算法使各进程在就绪队列中的等待时间以及两种算法下的平均等待时间。
答:
(1)先来先服务
进程 |
进入时间 |
开始时间 |
完成时间 |
等待时间 |
周转时间 |
带权周转时间 |
P1 |
0 |
0 |
10 |
0 |
10 |
10/10=1 |
P2 |
0 |
10 |
11 |
10 |
11 |
11/1=11 |
P3 |
0 |
11 |
13 |
11 |
13 |
13/2=6.5 |
P4 |
0 |
13 |
14 |
13 |
14 |
14/1=14 |
P5 |
0 |
14 |
19 |
14 |
19 |
19/5=3.8 |
平均等待时间:(0+10+11+13+14)/5=9.6
(2)非抢占式的优先级调度算法(优先级高低按1到5算)
进程 |
进入时间 |
开始时间 |
完成时间 |
等待时间 |
周转时间 |
带权周转时间 |
P1 |
0 |
0 |
10 |
0 |
10 |
10/10=1 |
P2 |
0 |
10 |
11 |
10 |
11 |
11/1=11 |
P3 |
0 |
16 |
18 |
16 |
18 |
18/2=9 |
P4 |
0 |
18 |
19 |
18 |
19 |
19/1=19 |
P5 |
0 |
11 |
16 |
11 |
16 |
16/5=3.2 |
平均等待时间:(0+10+16+18+11)/5=11
2、定义:作业周转时间=作业的完成时间一作业到达时间。现有三个作业同时到达,每个作业的计算时间均为1小时,它们在一台处理器上以单道方式运行,则平均周转时间为______小时。
答:
作业 |
进入时间 |
开始时间 |
完成时间 |
周转时间 |
1 |
0 |
0 |
1 |
1 |
2 |
0 |
1 |
2 |
2 |
3 |
0 |
2 |
3 |
3 |
平均周转时间:(1+2+3)/3=2
3、设有4道作业,它们的提交时间及执行时间如下:
作业号 |
提交时间 |
执行时间 |
1 |
10.0 |
2.0 |
2 |
10.2 |
1.0 |
3 |
10.4 |
0.5 |
4 |
10.5 |
0.3 |
试计算在单道程序环境下,采用先来先服务算法、最高响应比优先算法和短作业优先算法的平均周转时间和平均带权周转时间。
答:
(1)先来先服务算法
作业 |
进入时间 |
开始时间 |
完成时间 |
周转时间 |
带权周转时间 |
1 |
10 |
10 |
12 |
2 |
2/2=1 |
2 |
10.2 |
12 |
13 |
2.8 |
2.8/1=2.8 |
3 |
10.4 |
13 |
13.5 |
3.1 |
3.1/0.5=6.2 |
4 |
10.5 |
13.5 |
13.8 |
3.3 |
3.3/0.3=11 |
平均周转时间:(2+2.8+3.1+3.3)/4=2.8
平均带权周转时间:(1+2.8+6.2+11)/4=5.25
(2)最高响应比优先算法
(响应比计算:=(作业在后备状态队列中等待时间+估计运行需要的时间)/估计运行需要的时间)
作业 |
进入时间 |
开始时间 |
完成时间 |
周转时间 |
带权周转时间 |
1 |
10 |
10 |
12 |
2.0 |
2/2=1 |
2 |
10.2 |
12.8 |
13.8 |
3.6 |
3.6/1=3.6 |
3 |
10.4 |
12.3 |
12.8 |
2.4 |
2.4/0.5=4.8 |
4 |
10.5 |
12 |
12.3 |
1.8 |
1.8/0.3=6 |
时间12时候作业的响应比为:作业2=(1.8+1)/1=2.8,作业3=(1.6+0.5)/0.5=4.2 ; 作业4=(1.5+0.3)/0.3=6,
所以先执行作业4
时间12.3时刻作业的响应比为:作业2=(2.1+1)/1=3.1 ; 作业3=(1.9+0.5)/0.5=4.8,
所以先执行作业3
平均周转时间:(2+3.6+2.4+1.8)/4=2
平均带权周转时间:(1+3.6+4.8+6)/4=3.85
(3)短作业优先算法
作业 |
进入时间 |
开始时间 |
完成时间 |
周转时间 |
带权周转时间 |
1 |
10 |
10 |
12 |
2 |
2/2=1 |
2 |
10.2 |
12.8 |
13.8 |
3.6 |
3.6/1=3.6 |
3 |
10.4 |
12.3 |
12.8 |
2.4 |
2.4/0.5=4.8 |
4 |
10.5 |
12 |
12.3 |
1.8 |
1.8/0.3=6 |
平均周转时间:(2+3.6+2.4+1.8)/4=2
平均带权周转时间:(1+3.6+4.8+6)/4=3.85
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix