2 5个进程P1、P2、P3、P4、P5几乎同时到达,预期运行时间分别为10、6、2、4、8个时间单位。各进程的优先级分别为3、5、2、1、4(数值越大,优先级越高)。请按下列调度算法计算任务的平均周转时间(进程切换开销可忽略不计)。 (1)先来先服务(按P1、P2、P3、P4、P5顺序)算法。 (2)时间片轮转算法,假定时间片大小为2个时间单位。 (3)优先权调度算法。
时间: 2023-05-28 19:07:06 浏览: 492
(1) 先来先服务算法:
进程 到达时间 预期运行时间 完成时间 周转时间
P1 0 10 10 10
P2 0 6 16 16
P3 0 2 18 18
P4 0 4 22 22
P5 0 8 30 30
平均周转时间 = (10+16+18+22+30)/5 = 19.2
(2) 时间片轮转算法:
进程 到达时间 预期运行时间 完成时间 周转时间
P1 0 10 10 10
P2 0 6 14 14
P3 0 2 16 16
P4 0 4 22 22
P5 0 8 30 30
平均周转时间 = (10+14+16+22+30)/5 = 18.4
(3) 优先权调度算法:
进程 到达时间 预期运行时间 优先级 完成时间 周转时间
P2 0 6 5 6 6
P5 0 8 4 14 14
P1 0 10 3 24 24
P4 0 4 1 28 28
P3 0 2 2 30 30
平均周转时间 = (6+14+24+28+30)/5 = 20.4
因此,在这个例子中,时间片轮转算法的平均周转时间最短。
相关问题
5个进程P1、P2、P3、P4、P5几乎同时到达,预期运行时间分别为10、6、2、4、8个时间单位。 (2)时间片轮转算法,假定时间片大小为2个时间单位,计算平均周转时间
好的,根据时间片轮转算法,每个进程被分成若干个时间片,每个时间片执行的时间为2个时间单位。如果一个进程在一个时间片内没有执行完,则将其挂起,换上另一个进程执行。如果一个进程在一个时间片内执行完,则轮到下一个进程执行。这个过程会一直循环下去,直到所有进程都执行完毕。
按照时间片轮转算法,进程的执行顺序如下:
1. P1执行2个时间单位,剩余时间为8个时间单位。
2. P2执行2个时间单位,剩余时间为4个时间单位。
3. P3执行2个时间单位,剩余时间为0个时间单位。
4. P4执行2个时间单位,剩余时间为2个时间单位。
5. P5执行2个时间单位,剩余时间为6个时间单位。
6. P1执行2个时间单位,剩余时间为6个时间单位。
7. P2执行2个时间单位,剩余时间为0个时间单位。
8. P4执行2个时间单位,剩余时间为0个时间单位。
9. P5执行2个时间单位,剩余时间为4个时间单位。
10. P1执行2个时间单位,剩余时间为4个时间单位。
11. P5执行2个时间单位,剩余时间为2个时间单位。
12. P1执行2个时间单位,剩余时间为2个时间单位。
13. P5执行2个时间单位,剩余时间为0个时间单位。
14. P1执行2个时间单位,剩余时间为0个时间单位。
因此,进程的完成顺序为:P3、P2、P4、P5、P1。进程的平均周转时间为:(2+8+14+16+26)/5=13.2个时间单位。
希望我的回答能够帮助到你。如果你还有其他问题,请随时问我。
python把P1 P2 P3 P4 P5 P6 P7 变成一个可写成P[i]的数组,P1 P2 P3 P4 P5 P6 P7都是整数型
的变量。怎么写代码实现?
您好,感谢您对ChitGPT的使用。对于您的问题,您可以使用Python中的列表(list)来实现。具体代码如下:
P = [P1, P2, P3, P4, P5, P6, P7]
通过这段代码,你就把P1、P2、P3、P4、P5、P6、P7这七个变量存储到了列表P中,并且可以通过P[i]的形式来访问它们。
希望这个回答能够帮到您,如果您有其他问题,请随时向我提出。
阅读全文