參考文獻:[1]費翔林, 駱斌. 操作系統教程(第五版) [M]. 北京:高等教育出版社,2014.
題目:在單處理器多到分時系統中,有三道作業依次提交,其提交時刻及運行時間分別爲
作業 | 作業提交時刻 | 運行時間/h | 其中 | |
I/O時間/h |
CUP時間/h |
|||
Job1 | 8.0 | 0.36 | 0.18 | 0.18 |
Job2 | 8.2 | 0.32 | 0.16 | 0.16 |
Jbo3 | 8.4 | 0.36 | 0.18 | 0.18 |
分析:
-
題意解讀:
- 每道作業的I/O等待時間佔個各自總運行時間一半:看錶格就知道咯,比如Job1的,運行時間是0.36h,那麼I/O就需要0.18,剩下的0.18纔是CPU計算時間;
- 分時運行兩道作業CPU空閒20%:比如Job1和Job2都在內存裏,從內存選中一個進程到CPU中間要用掉20%的時間,也就是浪費20%的CPU計算時間;
-
解題步驟:
- 8.0~8.2時間段:內存中只有Job1一個進程,所以沒有進程切換,也就是沒有浪費20%的時間。I/O用了0.2÷2=0.1,所以需要CPU的剩餘時間爲:0.18-0.1=0.08(h);
- 8.2~8.4時間段:這時Job2也進入內存變成進程了,Job1和Job2之間存在進程切換,所以浪費了0.2×20%=0.04,剩下可用時間爲0.2-0.04=0.16。然而,Job1和Job2的I/O是可以交替進行的,比如現在CPU在執行Job1的運算,那麼同時Job2就可以進行I/O,而CPU計算Job2時,Job1就可以進行I/O。可以得出,Job1的CPU執行時間爲0.16÷2=0.08,Job1結束;Job2所需要CPU的剩餘時間爲:0.16-0.08=0.08(h);
- 8.4~8.6時間段:同第2步,浪費0.2×20%=0.04,剩下可用0.16,Job2用0.08後結束;Job3用0.08後剩餘0.1;
-
Job3剩餘0.1,需要I/O時間0.1,內存中只有Job3,不存在浪費,所以一共需要(0.1+0.1)=0.2(h),也就是8.6+0.2=8.8時刻,Job3結束。
答案:Job1運行完成時間:8.4;Job2運行完成時間:8.6;Job3運行完成時間:8.8。