作业帮 > 数学 > 作业

老师的答案好像是错的!采用先来先服务和最短作业优先调度算法时的平均周转时间 和平均带权周

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/17 04:11:55
老师的答案好像是错的!采用先来先服务和最短作业优先调度算法时的平均周转时间 和平均带权周
假设有4道作业,它们的提交时间及执行时间由表E1.2给出.
提交时刻(时) 执行时间(小时)
1 10:00 2
2 10:20 1
3 10:40 0.5
4 10:50 0.4
计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间
和平均带权周转时间,并指出它们的调度顺序.
答:(1)先来先服务调度:
顺序:1.Tsl:10:00 Tel:12:00 T1:2.00 Twl:0
2.Ts2:10:20 Te2:13:00 T2:1.00 Tw2:1.70
3.Ts3:10:40 Te3:13:30 T3:0.50 Tw3:2.30
4.Ts4:10:50 Te4:13:50 T4:0.30 Tw4:2.70
T:0.25*(2+2.7+2,8+3); 2.625 h
W:0.25*(4+0+1.7/1+2.3/0.5+2.7/0.3);4.825
(2)最短作业优先调度:
顺序:1.Ts4:10:50 Te4:10:80 T4:0.3 Tw4:0
2.Ts3:10:40 Te3:11:40 T3:0.5 Tw3:0.5
3.Ts2;10,20 Te2:12:40 T2:1 Tw2:1.3
4.Tsl:10:00 Tel:14:40 T1:2 Twl:2.7
T:0.25*(0.3+1+2.3+4.7); 2.075 h
W:0.25*(4+0+1+1.3+2.7/2); 1.9125
怎么我算的是2.635,4.24,2.3425,3.38875
先来先服务的第四组数据中的Te4明显是错的啊……应该是13:30+0.4*60=13:54才对,而且T4应该是0.4吧
而且答案在计算时,对每个任务的周转时间,都是只保留到小数点后一位,这样肯定是会有误差的,如果要求完全精确,那应该用分数来算
先来先服务的平均周转时间=(2+8/3+17/6+46/15)/4=317/120=2.64166666.
带权=(1+8/3+17/3+23/3)/4=51/12=4.25
短作业优先的话,答案问题就更大了,这种情况下,执行顺序是这样的:
10:00-10:20 一 (因为这时只有作业一到了,其他作业都还没到,当然只能执行作业一)
10:20-10:40 二 (10:20的时候,作业一还有100分,作业二只有60分,优先执行作业二)
10:40-10:50 三 (10:40,作业一剩100min,作业二剩40min,作业三剩30min,执行三)
10:50-11:10 三 (10:50的时候,作业三还剩20min就完了,而新来的作业四需要24min,短作业优先,继续执行三直到11:10执行完毕)
11:10-11:34 四 (11:10,作业四所剩时间最短,故执行作业四,到11:34执行完)
11:34-12:14 二 (11:34,作业二剩40min,作业一剩100min,执行作业二)
12:14-13:54 一
完毕
应该是这样的一个过程,周转时间和平均带权周转时间也应该是按照上面列出的时间点来算的
作业一
10:00到达 13:54结束
作业二
10:20到达 12:14结束
作业三
10:40到达 11:10结束
作业四
10:50到达 11:34结束
接下来具体计算过程就和上面一样了,我就不算了,想精确的话就用分数,最后再约等
上面所列的是进程的执行可以被另一个进程打断的情况,倘若规定执行时不可打断,那应该是下面的情况:
10:00-12:00 一(10:00只有一个作业一,只能开始执行了,又不能打断,故执行到12点结束)
12:00-12:24 四 (12:00其他三个作业都到了,挑最短的作业四执行并且执行完)
12:24-12:54 三 理由同上
12:54-13:54 二 理由同上
看题目怎么规定吧,如果没说,一般默认是可打断的,就是第一种情况
有问题请追问
再问: 简单来说就是先来先服务的顺序是1234,最后在约等于;段作业是1432,最后在约等,对吧
再答: 先来先服务是1234没错,短作业的话要看是不是可抢占的,要是不可抢占,那就是1432,要是可抢占,那各个作业的运行就是交错在一起的,就像上面的分析一样,你先运行20分,然后再换我,然后又换他,然后你再运行……这就复杂了,具体看题上怎么规定吧。 先分数,再约等,这是没错的
再问: 单道程序,这题应该是不可抢占吧~?
再答: 你这么一说好像还确实是这样,因为那些题目中的“多道”只是说多个任务可以轮换执行,其实还是只有一个CPU在干活,同一时间还是只能跑一个进程,只是看起来好像是多道同时(真多道应该是多个CPU)。 这么理解的话,单道应该就是不可抢占了,那就按不可抢占来回答吧,反正估计这个题大概也不会需要那种复杂的分析吧……