通過乙個多道程式設計的具體例子,來看看多道程式設計時計算機裡面事件的發生順序和多道程式設計環境下系統響應時間的提公升。
假定我們有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%。多道程式設計帶來的好處到底有多少和每個程式的性質、多道程式設計的度數、程序切換消耗等有關。但一般說來,只要度數適當,多道程式設計總是利大於弊。
假定我們有3
個程式,每個程式花費
80%的時間進行
i/o,
20%的時間使用
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
解釋:cpu利用率:io
處理佔總時間比例
p 則多道程式
cpu佔用率 為
1-p^n
只有 多個都處於等待才不是
cpu時間。
做出的正確結果應該是23.47
,也就是答案b
分析過程:
分析步驟:
0-10分鐘的時候,只有乙個程序
1在執行。
單程序cpu
占有率是
20%,所以這
10分鐘內,程序
1消耗了
2分鐘的
cpu。程序2是
0,程序3也是
0然後在10-15
分鐘內,有兩個程序在執行(1和
2),雙程序的
cpu利用率是
36%,
所以,這五分鐘內,cpu
一共利用了
1.8分鐘,平均分給每個程序,是
0.9分鐘。
此時,程序1
已經占用了
cpu 2.9
分鐘,還需要
0.6分鐘,這時候有三個程序在執行,所有總的
cpu時間需要
1.8分鐘。
三程序的cpu
利用率是
48.8%
,所以總共需要
1.8/0.488=3.69
分鐘。這時,程序1已經
3.5分鐘的
cpu利用時間利用完了。
此時還剩下2和3
號程序在執行。
2號程序還需要
0.5分鐘,所以
0.5×
2/0.36=2.78
,此時2
號程序的2分鐘
cpu時間也利用完了。
3號程序還需要
0.4分鐘的
cpu利用時間。
0.4/0.2 = 2
作業系統 多道程式排程
計算機系統採用了中斷和通道技術之後,i o裝置和cpu可以並行操作,初步解決了高速處理和低速外部裝置之間的矛盾,提高了計算機的工作效率。但這種並行使有限的。多道程式設計是在計算機記憶體中同時存放幾道相互獨立的程式 只有將程式放到記憶體cpu才會執行 使它們在管理程式控制之下,相互穿插地執行 記憶體中...
1 4 作業系統的結構之多道程式系統和分時系統
作業系統有乙個很重要的特點是具有多道程式能力 什麼是多道程式系統?首先考慮單道程式系統 只考慮計算機執行乙個程式的情況,程式中有一部分需要計算的,這就需要cpu進行工作了,但是也可能要進行磁碟的讀寫等i o操作。這是,cpu就空閒了,就需要停下來等待i o操作執行完成。那麼,問題發生了,i o操作可...
乙個簡單的時間片輪轉多道程式核心作業系統工作流程
一.作業系統工作概述 儲存程式計算機工作模型,計算機系統最最基礎性的邏輯結構 函式呼叫堆疊,高階語言得以執行的基礎 中斷,多道程式作業系統的基點。二.分析 主要對mypcb.h,mymain.c 和myinterrupt.c這三個檔案進行分析。define max task num 4 define...