(操作系统)请问32题为什么等待时间不可以叠加?

不知道我表达清楚了嘛,就是像我草稿纸这样,在p2等待的时候p3也跟着等待,当p2运行的时候和等待的3ms叠加在了一起

img


这是答案和解析!

img

  首先执行优先级10的p1,执行时间12秒;p2、p3等待时间(15s、18s)均未到,虽然p3的优先级别更高但等待时间18秒更长,所以p1执行完兵等待3秒优先执行p2;24秒后p2执行完再执行p3,p3执行36秒。最后的总执行时间是——

  • 计算截屏图片

    img


    p1优先级别最高,零等待直接上手执行;p1执行时的12秒,p2、p3均等待等待;p1执行结束p2、p3仍在等待中,3秒后执行p2,用时24秒,p3等待时间早过,立即执行,用时36秒。所以计算总用时的算式是:0+12+3+24+36=75
    p1的执行时间小于p、2p3,可以忽略,第一段时间即是p2的等待时间15秒,计算总时间的式子也可以是:15+24+36=75

为什么不可以叠加,因为叠加了没有道理呀
一个进程在等待的时候,其他进程是可以执行的,并不是3个进程同时进入等待呀
咱俩一起工作,你一个月休息8天,我一个月也休息8天,那是不是一个月里有16天是没人干活的呢,完全不是呀
如果咱们休息时间能串开的话,完全可以保证永远有一个人值班

从题目中得知,就绪队列中有3个进程:P1,P2和P3。它们的等待时间(即排队时间)、需要的CPU时间和优先权如下:

进程 等待时间 需要的CPU时间 优先权 P1 36μs 220μs 30 P2 15μs 310μs 18+1 P3 24μs 124μs 10

题目中提到,该系统采用了基于优先权的非抢占式进程调度策略。根据这个策略,优先权值大的进程优先获得CPU。那么根据进程优先权的大小,我们可以推断出进程的执行顺序。

按照优先权值从高到低排序,执行的顺序为:P1,P2,P3。

计算平均周转时间(即所有进程的周转时间之和除以进程数量):

平均周转时间 = (P1的周转时间 + P2的周转时间 + P3的周转时间) / 进程数量

P1的周转时间 = P1的等待时间 + P1的CPU时间 = 36μs + 220μs P2的周转时间 = P2的等待时间 + P2的CPU时间 = (36μs - 15μs)+ 310μs P3的周转时间 = P3的等待时间 + P3的CPU时间 = (36μs - 24μs)+ 124μs

平均周转时间 = (36μs + 220μs + 36μs - 15μs + 310μs + 36μs - 24μs + 124μs)/ 3 = 75μs

因此,系统的平均周转时间为75μs。选项D. 75μs是答案。