今天我們來分享兩道題目哈, 學校弄得題目.
T1: 靜態優先級, 搶占式(1為高優先級)
圖解:
以下是靜態優先級搶占式調度的解題過程和結果:
解題思路:
- 優先級規則: 數值越小優先級越高。新進程到達時,若其優先級高于當前運行進程,則搶占CPU。
- 進程調度過程:
- 時間0: A開始運行。
- 時間1: B到達并搶占A,B開始運行。
- 時間4: B完成,E到達并開始運行(優先級最高)。
- 時間8: E完成,C開始運行(剩余進程中優先級最高)。
- 時間13: C完成,A繼續運行剩余時間。
- 時間16: A完成,D開始運行。
- 時間18: D完成。
完整表格:
進程名 | 到達時間 | 服務時間 | 靜態優先級 | 開始時間 | 完成時間 | 周轉時間 | 帶權周轉時間 |
---|---|---|---|---|---|---|---|
A | 0 | 4 | 4 | 0 | 16 | 16 | 4.0 |
B | 1 | 3 | 2 | 1 | 4 | 3 | 1.0 |
C | 2 | 5 | 3 | 8 | 13 | 11 | 2.2 |
D | 3 | 2 | 5 | 16 | 18 | 15 | 7.5 |
E | 4 | 4 | 1 | 4 | 8 | 4 | 1.0 |
平均 | 9.8 | 3.14 |
結果說明:
- 周轉時間 = 完成時間 - 到達時間
- 帶權周轉時間 = 周轉時間 / 服務時間
- 平均值 計算后保留兩位小數。
此調度過程確保了高優先級進程(如E和B)優先執行,低優先級進程(如D)最后執行。
T2. FCFS和SJF算法分析進程的調度過程
圖解:
FCFS:
SJP:
以下是使用FCFS和SJF算法的調度過程分析及結果:
FCFS(先來先服務)算法結果
進程名 | 到達時間 | 服務時間 | 開始時間 | 完成時間 | 周轉時間 | 帶權周轉時間 |
---|---|---|---|---|---|---|
A | 8 | 2 | 8 | 10.0 | 2.0 | 1.0 |
B | 8.5 | 0.5 | 10.0 | 10.5 | 2.0 | 4.0 |
C | 9 | 0.1 | 10.5 | 10.6 | 1.6 | 16.0 |
D | 9.5 | 0.2 | 10.6 | 10.8 | 1.3 | 6.5 |
平均 | 1.73 | 6.88 |
計算說明:
- 開始時間:按到達順序依次執行,前一個進程完成后開始下一個。
- 周轉時間 = 完成時間 - 到達時間
- 帶權周轉時間 = 周轉時間 / 服務時間
- 平均值保留兩位小數。
SJF(短作業優先,非搶占式)算法結果
進程名 | 到達時間 | 服務時間 | 開始時間 | 完成時間 | 周轉時間 | 帶權周轉時間 |
---|---|---|---|---|---|---|
A | 8 | 2 | 8 | 10.0 | 2.0 | 1.0 |
B | 8.5 | 0.5 | 10.3 | 10.8 | 2.3 | 4.6 |
C | 9 | 0.1 | 10.0 | 10.1 | 1.1 | 11.0 |
D | 9.5 | 0.2 | 10.1 | 10.3 | 0.8 | 4.0 |
平均 | 1.55 | 5.15 |
計算說明:
- 調度順序:A完成后,選擇就緒隊列中服務時間最短的進程(C→D→B)。
- 開始時間:A執行到10.0后,依次執行C、D、B。
- 周轉時間和帶權周轉時間計算同上。
- 平均值保留兩位小數。
結果對比
- FCFS的平均周轉時間為 1.73,平均帶權周轉時間為 6.88。
- SJF的平均周轉時間為 1.55,平均帶權周轉時間為 5.15。
- 結論:SJF算法通過優先執行短作業,顯著降低了平均周轉時間和帶權周轉時間,體現了其高效性。