求解~~,一到操作系统试题!

cjzlxy 2003-08-18 04:57:01
一个有两个作业管理进程的批处理系统,作业调度采用最高响应比优先的算法,进程调度采用基于优先数(优先数大者优先)的算法。有以下作业序列:

作业名 到达时间 估计运行时间 优先数
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
计算每个作业的完成时间。
希望各位能给个详细的解题思想,谢谢!
...全文
40 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yczyk 2003-08-21
  • 打赏
  • 举报
回复
楼上的有问题,首先有两点:
1、A的优先数是5不是8,除非你的题目写错了!
2、F的执行时间打死也不相信是14:50,因为F的优先级最高,即它一得到指令就一定会执行到它结束为止,直到他结束为止啊,所以从它开始12:00开始。运行一小时10分,也应该是14:10结束啊!
jjsshen 2003-08-21
  • 打赏
  • 举报
回复
对呀,等待时间=开始执行时间-到达时间
kurapika5 2003-08-21
  • 打赏
  • 举报
回复
哦,晓得了,已经等待的时间....
kurapika5 2003-08-21
  • 打赏
  • 举报
回复
D的响应比=(80+30)/80=11/8=1.375;
E的响应比=(30+10)/30=4/3=1.333;

为什么d的等待时间是30而e的是10?应该是等d执行完毕,80才对吧?
dycredfly 2003-08-21
  • 打赏
  • 举报
回复
我同意楼上未来程序员同志的说法!!只有充分利用条件,结合进程高度响应比等等,这个韪就迎刃而解了。
ddlxx 2003-08-21
  • 打赏
  • 举报
回复
忘了说一句,参加程序员考试的朋友,请加我,UC号:48156677.
ddlxx 2003-08-21
  • 打赏
  • 举报
回复
A首先到达,10:00-10:20.(执行20分,还剩30分)
优先级:B>A,调度B,A停止,B:10:20-10:50.
因为此系统只有两个作业管理进程,此时系统不会响应C,继续执行B,直到11:20结束.
随后,C占用原来B的进程.又因为优先级:A>C,系统调用进程A,从11:20-11:50,结束.
此时,D,E都以到达,谁占用A退出的进程呢?
计算D,E的响应比:
最高响应比优先=(估计运行时间+等待时间)/估计运行时间
D的响应比=(80+30)/80=11/8=1.375;
E的响应比=(30+10)/30=4/3=1.333;
1.375>1.333.所以系统将D调入进程.
此时系统内有D和C两个作业管理进程.
比较D和C的优先数,8>3;
系统执行进程D.
从11:50-13:10(80分)
此时F也以到达,按上述方法比较E和F的响应比;
系统会将E调入进程,执行:13:10-13:40(30分)
最后系统内只剩下进程C和F,9>3;
系统执行F:13:40-14:50(70分)
系统执行C:14:50-15:30(40分)
最后得答案:
A:11:50结束
B:11:20结束
C:15:30结束
D:13:10结束
E:13:40结束
F:14:50结束
我今年参加中程,以上是在下的愚见,如有不妥之处,还望指教!

rocky821218 2003-08-21
  • 打赏
  • 举报
回复
请问,题目中“有两个作业管理进程”有什么用?如若有两个进程,当A运行到10:20的时候,B可以进另外一个进程阿,然后当A运行到10:50的时候恰好完成,那么,c不就可以占A的进程了吗?
cjzlxy 2003-08-20
  • 打赏
  • 举报
回复
清华大学出版社《程序员教程同步辅导》312页的答案是:
A:11:50结束
B:11:20结束
C:15:30结束
D:13:10结束
E:13:40结束
F:14:50结束
还有就是那个 最高响应比优先=(估计运行时间+等待时间)/估计运行时间
但我疑问的是到11:20的时候为什么执行A而不执行D?(此时他们的优先数都是8
ironox 2003-08-19
  • 打赏
  • 举报
回复
晕了,偶在想:
最高响应比优先=(估计运行时间+等待时间)/估计运行时间

二位的解法好象只用到了后面的进程优先数啊,响应比不用考虑么

charlie0895 2003-08-18
  • 打赏
  • 举报
回复
A(5) 10:00到达运行到10:20 剩下30分钟
B (7)到达 运行到10:50
C (3) 到达,因为3小于7, 剩下60分钟
B继续运行到11:20,结束;
此时 D(8)到达 因为8>5>3所以D运行
11:40 D运行20分钟 E(6) 到达 因为8>6,所以D继续运行
12:00 D运行了40分钟 F(9) 到达 因为8〈9,所以D停止,F运行
F运行到1:10 F 结束
因为8>6>5>3
所以运行D(已经运行了40分钟)
1:50 D结束 又因为6>5>3
所以运行E (没运行过)到2:20 E结束
因为5>3 运行A(还剩下30分钟)到2:50结束
最后运行C 到3:30
从10:00到3:30

一共330分钟
结果为:
A运行了290分钟(到2:50 结束)
B运行了80分钟 (到11:20结束)
C运行了330分钟(到3;30结束)
D运行了230分钟 (到1:50结束)
E运行了260分钟(到2:20结束)
F运行了190分钟(到1:10结束)
ecoolboysh 2003-08-18
  • 打赏
  • 举报
回复
按响应比优先 也就是来了就做没做完就等 也就是所有时间加起来 330分。
基于优先 则先是a 运行20分后,b优先级高所以a停下运行b,c太低了所以b一直运行到11:20
,即b完成,d优先级也高,运行到e,d 完。e优先级比a高,e运行20分,f运行完。接着e运
行剩下的10分,a运行剩下的30分,c运行至完。
用多少时间自己加去
290分。

算错了提醒一下
偶尔看懂了呵呵
qq:34452392

2,948

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧