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