操作系统选择题,解释一下

43.设在内存中有P1、P2两道程序,并按照P1、P2的次序运行,其内部计算
和I/O操作时间如下:P1:计算60ms,I/O 80ms ,计算20ms, P2: 计算
120ms, I/O 40ms ,计算 40ms 调度程序的执行时间不计,完成这两道程序比
单道运行节约的时间是 (B)
A.100ms B.120ms C.160ms D.200ms

我选A.不知道对不
因为CPU在处理指令的时候,其他设备可以同时进行I/O操作;反之依然。
于是,程序P1开始I/O时,因为CPU闲置,P2就被CPU开始执行,但是80ms结束后,P2的第一步120ms还有40ms需要运行,这将继续占用CPU,直到执行到P2第二步40ms的I/O。此时,CPU空闲,再反过来执行P1的最后一步20ms计算。所以,这个过程总计用时=P1第一步+P2第一步+ P2第二步+P2第三步=260ms。比单道运行的360ms节省100ms。追问

其实我也选a,但是网上的答案算是b

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-08
按照P1,P2次序执行,也就是如果同时需要资源,先执行P1,如果已经被占,则P1等待P2执行
顺序是
计算P1执行60ms后执行P2的120ms,再执行P1的计算20ms,再执行P2的四十毫秒
I/O在此题比较空闲,不存在抢占和和等待的问题,时间也比计算短
所以两道程序是60+120+20+40=240ms
而全部单道是60+80+20+120+40+40=360ms
所以是360-240=120ms追问

i/o的时间不算吗?

追答

算,I/O的执行顺序是等待60ms,执行P1 的80ms,再等待40ms,再执行40ms,总时间为180ms,最后取计算和IO时间中比较长的240ms

追问

io和cpu的执行时间不能分着算吧,问的是程序完成的时间

追答

是分着算的,程序的运行时间是所有设备中运行时间周期最长的,你得允许其他设备空闲吧

第2个回答  2013-12-22
答案就选A,一开始先进行计算CPU所占用的60ms,执行完后CPU空闲,执行P2的120ms,此时P1第二步同时进行,完成后,P2第二步进行,与此同时P1的第三步完成,最后完成P2的第三步:即 60+120+40+40=260。 总和360-260=100
第3个回答  2012-12-08
最短时间=120+80+40=240
P1单道时间=60+80+20=160
P2单道时间=120+40+40=200
节约时间=160+200-240=120追问

最短时间怎么算的呢?

追答

就是同时计算或IO时,取最长的相加

追问

可是画图的话结果不一样

追答

我觉得qq418766140的说法更准确一些