首页 > 试题广场 >

设在内存中有P1,P2,P3三道程序,并按照P1,P2,P3

[单选题]
设在内存中有P1,P2,P3三道程序,并按照P1,P2,P3的优先级次序运行,其中内部计算和IO操作时间由下表给出(CPU计算和IO资源都只能同时由一个程序占用,抢占式):
P1:计算60ms---》IO 80ms---》计算20ms
P2:计算120ms---》IO 40ms---》计算40ms
P3:计算40ms---》IO 80ms---》计算40ms
并行完成三道程序比单道运行节省的时间是()
  • 80ms
  • 120ms
  • 160ms
  • 200ms
推荐
这里节约的时间是在一个进程进行cpu操作的时候另一个进程可以进行io操作,反之也是可以的。但是要注意的是,高优先级的进程可以剥夺资源并直至完成才让出资源。 本题,在p1进行io80ms期间,p2可占用cpu80ms,之后被迫让出给p1执行cpu20ms后继续完成还剩的cpu40ms。按照这种思路,共可以节约80+40+40=160ms. 选C ;
编辑于 2015-02-05 15:13:16 回复(1)
发表于 2016-05-25 16:19:01 回复(12)
答案:C
三个作业都需要两次CPU计算时间和一次IO访问时间,(注意顺序不能颠倒)
如果三个作业并行执行,则P1的IO时间可以放在P2的第一个计算时间进行,P2的IO操作可以放在P3的第一个计算时间执行,P3的IO操作中有40ms可以放在P2的第二个计算时间执行,节省总时间为80+40+40=160
发表于 2015-01-27 13:15:11 回复(0)
题意,CPU操作和IO操作可以并行,所以节约的时间就是二者平行的时间。
发表于 2016-08-31 11:59:46 回复(0)
支持剥夺的话,是160,不支持剥夺的话,是120
发表于 2015-08-22 12:40:25 回复(3)

发表于 2019-12-04 16:51:24 回复(0)
看来没笔不好做这样的
发表于 2017-12-03 01:46:29 回复(0)
三个进程是按抢占式资源来工作的。
发表于 2016-07-12 19:10:06 回复(1)
画了个运行时间表格,清晰明了

单个运行时:(60+80+20)+(120+40+40)+(40+80+40)=520ms
并行运行时:最终结束时间为360ms
520-360=160ms
编辑于 2021-01-29 14:52:49 回复(0)
综合前面答主的答案:
按题意,CPU操作和IO操作可以并行,所以节约的时间就是二者平行的时间。如下图:


发表于 2020-07-10 17:34:15 回复(1)
发表于 2020-05-19 22:12:41 回复(1)
题意,CPU操作和IO操作可以并行,所以节约的时间就是二者平行的时间。
发表于 2017-04-22 09:30:18 回复(0)
坑在p3开始是计算40ms 也就是在和p2的io 40ms并行的时候 !已经完成了计算 所以p2计算的时候 p3能进行IO 又节省了40ms 所以是160 而不是120
发表于 2022-01-07 17:57:47 回复(0)
请问这种题,有统一的算法吗
发表于 2020-06-21 10:07:55 回复(0)

还是对可剥夺的概念很模糊,操作系统是真的难啦


发表于 2020-02-15 10:34:11 回复(0)
谁特么想到他可剥夺啊。。。直接用了最优时间,选了D。。。
发表于 2020-02-05 23:39:06 回复(1)
Linux中就是120,支持抢占的话,B线程IO结束了以后会抢占C线程的CPU执行,所以轮到C线程进行IO时,AB早就执行完了。
发表于 2018-07-26 18:19:27 回复(0)
发表于 2017-09-30 22:08:41 回复(1)
节省的时间是一个线程在执行时,另一个线程在执行的时间。
发表于 2017-08-04 15:30:26 回复(0)
画出重叠部分就是节约的时间
发表于 2017-08-02 14:50:27 回复(0)
应该加上说明cpu不可抢占
发表于 2017-07-09 23:07:58 回复(0)