1、實驗目的
(1)加深對處理機調度的做用和工做原理的理解。算法
(2)進一步認識併發執行的實質。併發
2、實驗要求:
本實驗要求用高級語言,模擬在單處理器狀況下,採用多個調度算法,對N個進程進行進程調度。語言自選。spa
並完成實驗報告。設計
3、實驗內容:blog
在採用多道程序設計的系統中,每每有若干個進程同時處於就緒狀態。隊列
當就緒狀態進程個數大於處理器數時,就必須依照某種策略來決定哪些進程優先佔用處理器。進程
- 進程及進程隊列的表示。
- 處理器調度算法:FCFS,SJF,RR,HRRN,MLFQ等
- 跟蹤進程狀態的轉化
- 輸出:系統中進程的調度次序,計算CPU利用率,平均週轉時間和平均帶權週轉時間
4、實驗過程與結果內存
- 算法思想與設計
- 算法實現代碼
- 運行結果
(1)FCFS算法資源
1.1 算法思想:程序設計
按照做業進入系統後備做業隊列的前後次序來挑選做業,先進入系統的做業將優先被挑選進入內存,建立用戶進程,分配所需資源,而後移入就緒隊列。
1.2 算法設計:(採用描述或程序流程圖)
1.3 算法實現代碼
1.4 運行結果
(2)SJF算法
2.1 算法思想:
以進入系統做業所要求的CPU運行時間的長短爲標準,老是選取預計計算時間最短的做業投入運行。
2.2 算法設計:(採用描述或程序流程圖)
(3)最短剩餘時間優先算法
3.1 算法思想:
假設當前某進程正在運行,若是有新進程移入就緒隊列,若是它所須要的CPU運行時間比當前運行進程所須要的剩餘CPU時間還短,搶佔式最短做業優先算法強行剝奪當前執行者的控制權,調度新進程執行。
3.2 算法設計:(採用描述或程序流程圖)