高程中一道作业调度和进程调度的问题,请大虾帮忙.

一个有两个作业管理进程的批处理系统,作业调度采用最高响应比优先的算法,
进程调度采用基于优先数(优先数大者优先)的算法,有以下作业序列。
作业名 到达时间 估计运行时间(分) 优先数
A 10:00 50 5
B 10:20 60 7
C 10:50 40 3
D 11:20 80 8
E 11:40 30 6
F 12:00 70 9
计算每个作业的完成时间。
[247 byte] By [wei20020225-紫龙] at [2007-12-16]
# 1
A:14:50
B:11:20
C:15:30
D:13:50
E:14:20
F:13:10
sangzier-Tomorrow at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 2
老大呀,我要的是分析过程,又是进程优先数,又是作业优先级,我不知混在一块怎么处理。
况且你的答案不对。
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 3
10:00--10:20 A
10:20--11;20 B 完成
11:20--12;00 D
12:00--13:10 F完成
13:10--13:50 D完成
13:50--14:20 E完成
14:20--14:50 A完成
14:50--15:30 C完成
# 4
有竞争的时候先仅优先级别最高的运行
无竞争时按时间先后运行!
wp03141592-涵 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 5
to wp03141592(涵)
优先级有作业响应比和进程优先数,假如一个作业响应比高但进程优先数底,应该怎么执行呢?
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 6
首先,你得明白作业调度和进程调度的区别:
作业调度是把外存的作业调进内存中,并为其创建进程,加入就绪队列中等待进程调度。
进程调度则是从就绪队列中选择一个进程分配处理机,让其执行。

在批处理系统中,作业进入系统先是在外存中,然后谁的响应比高(在本题中)谁就由作业调度调入内存,排在就绪队列上。由于内存中同时存在的作业数有限(即为多道程序度),当超过这个度时,低响应比者则被调出内存。

对于内存中的进程(作业),则按照优先级原则进行调度,这就不用多说了吧:)
bluemouse_1982-蓝皮鼠 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 7
楼上的没有注意到一个问题吧,这个作业调度的机制是可剥夺还是不可剥夺的呢?
abinlover-阿彬 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 8
谢谢各位,我受益匪浅。
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 9
应该是非抢占式的,不然会更复杂。
# 10
楼上的几位同志的答案好像都有问题啊,
A:11:50结束
B: 11: 20结束
C:15:30结束
D: 13: 10结束
E:13:40结束
F: 14: 50结束
smallqiang-小强 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 11
foreveryday007是对的!!
dennis80-我爱亚薇 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 12
同意楼上!
GGYY123-Breakalltherules at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 13
这一题必须考虑多道程序度。
譬如在11:20时,B完成。A,C,D均已到达。若多道程序度为2(即内存中最多只有2个作业),而A,C的响应比>1,D由于刚到响应比为1。则A,C在内存中,A由于优先级高得到处理机。而D则留在外存中,尽管其优先级最高也无法得到处理机。
若多道程序度为3,则A,C,D均可进入内存,D的优先级最高而得到处理机。

由此可见,多道程序度不同,各作业完成时间也将不同。所以必须知道多道程序度。

对于是否可剥夺,个人认为,若为非可剥夺,则本题也太无聊了。
bluemouse_1982-蓝皮鼠 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 14
我不同意楼所有看法!!!!!

首先,题目说到“一个有两个作业管理进程的批处理系统”肯定有点作用,而楼上的同志们没有用到它。我的理解是:可以有两个进程同时(并行)运行,尽管仍然受优先级影响。这样,这两个进程的运行时间都要乘以2,因为它们所占cpu时间各一半,独亨cpu时才不用乘2。我的老师讲过这样的题,你大家相信。下面是我的解法。

10:00 10:20 10:50 11:20 11:40 12:00 14:00 14:20 15:20 15:30
A:(-50)* -30* -15* 完
B: (-60)* -45* -30* -20* -10 -10* 完
C: (-40) -40 -40 -40 -40 -40* -10* 完
D: (-80)* -70* -60* 完
E: (-30) -30 -30 -30* 完
F: (-70)* -10* 完

注:负数表示还没有运行的时间,加个括号表示刚进入;加个*表示优先级高,将被选择运行。
# 15
有一定的道理。
GGYY123-Breakalltherules at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 16
权威答案是哪一个?
cnstars-新思 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 17
喂,楼主,把答案给出来好不好!
bluemouse_1982-蓝皮鼠 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 18
谢谢各位精彩的讨论,这道题出自清华大学出版社的《高级程序员教程同步辅导》,p132 (6)
答案:
A: 11:50结束
B: 11:20结束
C: 15:30结束
D: 13:10结束
E: 13:40结束
F: 14:50结束
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 19
我的愚见是这样的:由题意可知多道程序度为2(两个作业管理进程),
则 A: 10:00-10:20,11:20-11:50
B: 10:20-11:20
C: 14:50-15:30
D: 11:50-13:10
E: 13:10-13:40
F: 13:40-14:50

作业与进程调度分析与 bluemouse_1982(蓝皮鼠) 相同。
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 20
强烈反对!!!

无论谁先运行,总共的运行时间是一定的,即都要运行(50+60+40+80+70+30=330),所以最后结束的时间一定是15:30(10:00+330)。

为什么有14:50出来,不明?????我再不明????
# 21
你仔细看看答案就知道了,C是最后一个执行的,结束时间是15:30。
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 22
I know!!
# 23
本题答案终结者:

题的作业和进程的推进过程如下:
10:00 作业A到达,被作业调度程序调度进入系统,被进程调度程序调度开始运行。
10:20 作业A运行20分钟,剩余30分钟,由于A的优先数小于B的优先数,被进程调度程序调度处于就绪状态。
作业B到达,被作业调度程序调度进入系统,被进程调度程序调度开始运行。
10:50 作业A等待30分钟,剩余30分钟。
作业B运行30分钟,剩余30分钟。
作业C到达,等待作业调度进程调度。
11:20 作业A等待60分钟,剩余 30分钟,由于A的优先数大于C优先数,被进程调度程序调度运行。
作业B运行60分钟,运行结束。
作业C等待 30分钟,响应比=1+30/40=1.75,被作业调度程序调度进入系统,被进程调度程序调度处于就绪状态。
作业D到达,响应比 =1+0/80=1,响应比低于作业C,等待作业调度进程调度。
11:40 作业A运行40分钟,剩余10分钟,由于A的优先数大于 C优先数,被进程调度程序调度运行。
作业C等待20分钟,剩余40分钟。
作业D等待20分钟,响应比 =1+20/80=1.25。
作业E到达,等待作业调度进程调度。
11:50 作业A运行50分钟,运行结束。
作业C 等待30分钟,剩余40分钟,由于C的优先数小于D的优先数,被进程调度程序调度处于就绪状态。
作业D等待30分钟,响应比 =1+30/80=1.375,响应比高于作业E,被作业调度程序调度进入系统,被进程调度程序调度运行。
作业E等待10分钟,响应比=1+10/30=1.33,等待作业调度进程调度。
12:00 作业 C等待40分钟,剩余40分钟。
作业D运行10分钟。
作业E等待20分钟,等待作业调度进程调度。
作业F到达,等待作业调度进程调度。
13:10 作业C等待110 分钟,剩余40分钟,由于C的优先数小于E的优先数,被进程调度程序调度处于就绪状态。
作业D等待80分钟,运行结束。
作业E等待70分钟,响应比=1+70/30=3.33,响应比高于作业F,被作业调度程序调度进入系统,被进程调度程序调度运行。
作业F等待70分钟,响应比=1+70/70=2,等待作业调度进程调度。
13:40 作业C等待140分钟,剩余40分钟,由于 C的优先数小于F的优先数,被进程调度程序调度处于就绪状态。
作业E运行30分钟,运行完成。
作业F等待 100分钟,被作业调度程序调度进入系统,被进程调度程序调度运行
14:50 作业C等待180分钟,剩余40分钟。
作业F运行70分钟,运行完成。
15:30 作业C运行40分钟,运行完成。

各作业的执行时间序列为:
作业A(50分钟)10:00-10:20,11:20-11:50
作业B( 60分钟)10:20-11:20
作业C(40分钟)14:50-15: 30
作业D(80分钟)11:50-13:10
作业E(30分钟)13:10-13:40
作业F(70分钟)13;40-14:50
jackyjian-失心公子 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 24
呵呵,分析的真够详细的 :)
wei20020225-紫龙 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...
# 25
Very good!
Budda-初学者 at 2007-10-22 > top of Msdn China Tech,软件培训/认证/考试,软件水平考试...