不知道我表达清楚了嘛,就是像我草稿纸这样,在p2等待的时候p3也跟着等待,当p2运行的时候和等待的3ms叠加在了一起
首先执行优先级10的p1,执行时间12秒;p2、p3等待时间(15s、18s)均未到,虽然p3的优先级别更高但等待时间18秒更长,所以p1执行完兵等待3秒优先执行p2;24秒后p2执行完再执行p3,p3执行36秒。最后的总执行时间是——
为什么不可以叠加,因为叠加了没有道理呀
一个进程在等待的时候,其他进程是可以执行的,并不是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是答案。