1. 程式人生 > >在多執行緒/程序環境下,計算系統的總響應時間

在多執行緒/程序環境下,計算系統的總響應時間

通過一個多道程式設計的具體例子,來看看多道程式設計時計算機裡面事件的發生順序和多道程式設計環境下系統響應時間的提升。

假定我們有4個程式,每個程式花費80%的時間進行I/O,20%的時間使用CPU,每個程式的啟動時間和其需要使用CPU進行計算機的分鐘數如表4-1所示。


從0點0分開始到0點10分,系統裡只有1個程式,因此屬於單道程式設計狀態。單道程式設計時CPU的利用率為20%,因此第1個程式在該10分鐘裡總共使用了CPU達2分鐘(其他8分鐘都用來進行I/O了)。0點10分到0點15分,系統裡面有兩個程式,因此屬於2道程式設計。2道程式設計時CPU利用率為36%,則在5分鐘時間內,CPU使用了1.8分鐘。假定這兩個程式完全平等,則每個程式使用CPU的時間是0.9分鐘。至此,程式1總共運行了2.9分鐘CPU時間,程式2運行了0.9分鐘CPU時間。

從0點15分開始到0點20分,系統裡面有3個程式,因此屬於3道程式設計狀態。3道程式設計時CPU的利用率為48.8%,則在這5分鐘時間內,CPU被佔用了大約2.4分鐘(其他2.6分鐘都用來I/0了)。同樣,假定所有程式完全平等,則每個程式使用CPU的時間為0.8分鐘。至此,程式1總共運行了3.7分鐘CPU時間,程式2運行了1.7分鐘CPU時間,程式3運行了0.8分鐘CPU時間。此時,程式1離結束所需要的CPU時間最短,僅為0.3分鐘。

從0點20分開始,系統裡面有4份額程式,因此屬於4道程式設計。我們知道4道程式設計時CPU利用率為59%而如果程式1想再執行0.3分鐘CPU時間,則整個系統需執行時間約為2分鐘(2分鐘時間內CPU共被使用1.2分鐘,平均每個程式使用CPU時間為0.3分鐘)因此在0點22分時,第一個程式執行完畢,系統變為3道程式設計。

   此時,程式1結束,程式2總共運行了2分鐘CPU時間,程式3運行了1.1分鐘CPU時間程式4運行了0.3分鐘CPU時間。此時,程式3離所需的CPU時間最短,為0.9分鐘。那麼系統需要執行多長時間才能使程式3獲得0.9分鐘的CPU時間呢?答案是5.6分鐘。因為3道程式設計的CPU利用率大約為48%,而5.6分鐘內CPU的時間約是2.7分鐘。三個程式平分,每個程式運行了0.9分鐘CPU時間。因此,到0點27.6分鐘,系統裡只剩下兩個程式。而在1.6分鐘後,即0點28.2分鐘時,程式2將結束執行,剩下程式4一個程式。該程式則在0點31.7分鐘時結束執行。整個事件發生順序,如圖4-5所示。





多道程式設計比起單道程式設計,系統平時響應時間縮短了11.375分鐘,響應時間減少了41.37%。多道程式設計帶來的好處到底有多少和每個程式的性質、多道程式設計的度數、程序切換消耗等有關。但一般說來,只要度數適當,多道程式設計總是利大於弊。