假定我们有3个程序,每个程序花费80%的时间进行I/O,20%的时间使用CPU

2 假定我们有3个程序,每个程序花费80%的时间进行I/O,20%的时间使用CPU,每个程序的启动时间和其需要使用CPU进行计算机的分钟数如表所示

程序编号      启动时间              需要CPU时间(分钟)
  1           00:00(零点零分)         3.5 
  2           00:10                     2
  3           00:15                     1.5

请问在多线程/进程环境下 系统总响应时间
A 22.5   B 23.5     C 24.5     D 25.5

答案:

0~10  10*0.8=8 10*0.2=2  A剩下1.5分钟CPU跑
10~15  有两个进程 CPU利用率为1-0.8*0.8=0.36  所以5*0.36/2=0.9(两个进程均分CPU时间)这样A剩下0.6,B剩下1.1
15开始,有3个进程 CPU利用率为1-0.8*0.8*0.8=0.488 所以A在 0.6*3/0.488=3.69也就是18.69分完成,之后CPU利用率又为0.36,此时B剩下1.1-0.6=0.5,C剩下1.5-0.6=0.9 之后B在0.5*2/0.36=2.78也就是2.78+18.69=21.46时候B进程结束,之后C开始单跑 0.9-0.5=0.4  0.4/0.2=2, 即2分钟之后C结束,也就是21.46+2=23.46≈23.5 所以答案应该选B

具体详见:https://blog.csdn.net/sunmenggmail/article/details/8022532

猜你喜欢

转载自blog.csdn.net/centnetHY/article/details/83314247