假定我們有3個程式,每個程式花費80%的時間進行I/O,20%的時間使用CPU
阿新 • • 發佈:2018-11-08
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