王道操作系统考研笔记——2.1.8 调度算法的评价指标
文章目錄
- 2.1.8 調度算法的評價指標
- 2.1.8.1 CPU利用率
- 2.1.8.2 系統吞吐量
- 2.1.8.3 周轉時間
- 2.1.8.4 等待時間
- 2.1.8.5 響應時間
- 2.1.8.6 小結
2.1.8 調度算法的評價指標
知識總覽
需要注意的是,這一部分的知識要學會計算
2.1.8.1 CPU利用率
在早期,由于CPU造價極其昂貴,因此人們會希望讓CPU盡可能多地工作。由此,引出了下面的概念。
CPU利用率:指CPU“忙碌”的時間占總時間的比例。,即利用率=忙碌的時間總時間利用率 = \frac{忙碌的時間}{總時間}利用率=總時間忙碌的時間?。
在有的題目中,還會要求計算某種設備的利用率。
某計算機只支持單道程序,某個作業剛開始需要在CPU上運行5秒,再用打印機打印輸出5秒,之后再執行5秒,才能結束。在此過程中,CPU利用率、打印機利用率分別是多少?
CPU利用率=5+55+5+5=66.66CPU利用率 = \frac{5+5}{5+5+5} = 66.66CPU利用率=5+5+55+5?=66.66%
打印機利用率=515=33.33打印機利用率 = \frac{5}{15} = 33.33打印機利用率=155?=33.33%
需要注意的是,考研中一般不會出這么簡單的題目,而是會考查多道程序并發執行的情況,這時候可以利用甘特圖來輔助計算。
2.1.8.2 系統吞吐量
對于計算機來說,人們總希望能用盡可能少的時間處理完盡可能多的作業。
系統吞吐量:單位時間內完成作業的數量。
系統吞吐量 = 總共完成了多少道作業總共花了多少時間\frac{總共完成了多少道作業}{總共花了多少時間}總共花了多少時間總共完成了多少道作業?
某計算機系統處理完10道作業,共花費了100秒,則系統吞吐量為?
10/100 = 0.1道/秒
2.1.8.3 周轉時間
對于計算機的用戶來說,他很關心自己的作業從提交到完成花了多少時間。這就是周轉時間。周轉時間是指作業被提交給系統開始,到作業完成為止的這段時間間隔。
其包括四個部分:作業在外存后備隊列上等待作業調度的時間、進程在就緒隊列上等待進程調度的時間、進程在CPU上執行的時間、進程等待I/O操作完成的時間。后三項在一個作業的整個處理過程中,可能發生多次。
作業周轉時間 = 作業完成時間-作業提交時間
對于單個用戶來說,更關心自己的單個作業的周轉情況
平均周轉時間 = 各作業周轉時間之和作業數\frac{各作業周轉時間之和}{作業數}作業數各作業周轉時間之和?
對于操作系統來說,更關心系統的整體表現,因此更關心所有作業周轉時間的平均值。
有的作業運行時間短,有的作業運行時間長,因此在周轉時間相同的情況下,運行時間不同的作業,給用戶的感覺肯定是不一樣的。
這么說的話,用戶如何關心自己作業在周轉時間的實際表現呢?這時候就引出了帶權周轉時間。
帶權周轉時間 = 作業周轉時間作業實際運行的時間=作業完成時間?作業提交時間作業實際運行的時間\frac{作業周轉時間}{作業實際運行的時間} = \frac {作業完成時間 - 作業提交時間}{作業實際運行的時間}作業實際運行的時間作業周轉時間?=作業實際運行的時間作業完成時間?作業提交時間?
這樣的話,對于周轉時間相同的兩個作業,實際運行時間長的作業在相同時間內被服務的時間更多,帶權周轉時間小,用戶滿意度更高。
而對于實際運行時間相同的兩個作業,周轉時間短的帶權周轉時間更小,用戶滿意度更高。
從公式來看,作業提交后不一定開始處理,所以分子肯定大于分母,也就是說,帶權周轉時間必然大于1,而且帶權周轉時間與周轉時間都是越小越好。
平均帶權周轉時間 = 各作業帶權周轉時間之和作業數\frac{各作業帶權周轉時間之和}{作業數}作業數各作業帶權周轉時間之和?
相信上面的概念不好理解,我們下面用幾個計算例子來理解:
設有三道作業,它們的提交時間和運行時間見下表:
| 1 | 10:00 | 2 |
| 2 | 10:10 | 1 |
| 3 | 10:25 | 0.25 |
注:為計算方便,“時”均為十進制。
試給出在下面兩種調度算法下,作業的執行順序、平均周轉時間和帶權周轉時間。
采用FCFS調度算法時,作業的執行順序是作業1->作業2->作業3,根據題意可得下表:
| 1 | 10:00 | 2 | 10:00 | 12:00 |
| 2 | 10:10 | 1 | 12:00 | 13:00 |
| 3 | 10:25 | 0.25 | 13:00 | 13:15 |
那么,由公式可得:
平均周轉時間=各作業周轉時間之和作業數=[(12?10)+(13?10:10)+(13:25?10:25)]/3=2.55h平均周轉時間 =\frac{各作業周轉時間之和}{作業數} = [(12-10)+(13-10:10)+(13:25-10:25)]/3 = 2.55h平均周轉時間=作業數各作業周轉時間之和?=[(12?10)+(13?10:10)+(13:25?10:25)]/3=2.55h
平均帶權周轉時間=各作業帶權周轉時間之和作業數=[(12?10)/2+(13?10:10)/1+(13.15?10.25)/0.25]/3=5.05h平均帶權周轉時間 = \frac{各作業帶權周轉時間之和}{作業數} = [(12-10)/2+(13-10:10)/1+(13.15-10.25)/0.25]/3 = 5.05h平均帶權周轉時間=作業數各作業帶權周轉時間之和?=[(12?10)/2+(13?10:10)/1+(13.15?10.25)/0.25]/3=5.05h
采用SJF調度算法時,作業的執行順序是作業1->作業3->作業2,根據題意可得下表:
| 1 | 10:00 | 2 | 10:00 | 12.00 |
| 2 | 10:10 | 1 | 12:15 | 13:15 |
| 3 | 10:25 | 0.25 | 12:00 | 12:15 |
那么,由公式可得:
平均周轉時間=[(12?10)+(13:15?10:10)+(12:15?10:25)]/3=[2+3.08+1.83]/3=2.3h平均周轉時間 = [(12-10)+(13:15-10:10)+(12:15-10:25)]/3=[2+3.08+1.83]/3=2.3h平均周轉時間=[(12?10)+(13:15?10:10)+(12:15?10:25)]/3=[2+3.08+1.83]/3=2.3h
帶權平均周轉時間=(2/2+3.08/1+1.83/0.25)/3=3.8h帶權平均周轉時間 = (2/2+3.08/1+1.83/0.25)/3=3.8h帶權平均周轉時間=(2/2+3.08/1+1.83/0.25)/3=3.8h
2.1.8.4 等待時間
計算機的用戶希望自己的作業盡可能少的等待處理機。
等待時間,指進程/作業處于等待處理機狀態時間之和,等待時間越長,用戶滿意度越低。
對于進程來說,等待時間就是指進程建立后等待被服務的時間之和,在等待I/O完成的期間其實進程也是在被服務的,所以不計入等待時間。對于作業來說,不僅要考慮建立進程后的等待時間,還要加上作業在外存后備隊列中等待的時間。
一個作業作業總共需要被CPU服務多久,被I/O設備服務多久一般是確定不變的,因此調度算法其實只會影響作業/進程的等待時間。當然,與前面指標類似,也有“平均等待時間”來評價整體性能。
2.1.8.5 響應時間
對于計算機用戶來說,會希望自己提交的請求(比如通過鍵盤輸入了一個調試指令)盡早地開始被系統服務、回應。由此引出了響應時間的概念:
響應時間,指從用戶提交請求到首次產生響應所用的時間。
2.1.8.6 小結
總結
以上是生活随笔為你收集整理的王道操作系统考研笔记——2.1.8 调度算法的评价指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【视频】CCNA——telnet和SSH
- 下一篇: linux创建2g文件,嵌入式 创建一个