實驗報告
一、實驗目的
(1)加深對處理機排程的作用和工作原理的理解。
(2)進一步認識併發執行的實質。
二、實驗要求:
本實驗要求用高階語言,模擬在單處理器情況下,採用多個排程演算法,對n個程序進行程序排程。語言自選。
並完成實驗報告。
三、實驗內容:
在採用多道程式設計的系統中,往往有若干個程序同時處於就緒狀態。
當就緒狀態程序個數大於處理器數時,就必須依照某種策略來決定哪些程序優先占用處理器。
程序及程序佇列的表示。
處理器排程演算法:fcfs,sjf,rr,hrrn,mlfq等
跟蹤程序狀態的轉化
輸出:系統中程序的排程次序,計算cpu利用率,平均周轉時間和平均帶權周轉時間
四、實驗過程與結果
演算法思想與設計
演算法實現**
執行結果
(1)先來先服務排程演算法(fcfs)
該演算法採用非剝奪策略,演算法按照程序提交或程序變為就緒狀態的先後次序,分派 cpu。當前程序占用cpu,直到執行完或阻塞,才出讓cpu(非搶占方式)。在程序喚醒後(如i/o 完成),並不立即恢復執行,通常等到當前程序出讓cpu。這是最簡單的排程演算法,比較有利於長程序,而不利於短程序,有利於cpu 繁忙的程序,而不利於i/o 繁忙的程序。
(2)短程序優先排程演算法(sjf)
該演算法也採用非剝奪策略,對預計執行時間短的程序優先分派處理機。通常後來的短程序不搶先正在執行的程序。相比fcfs 演算法,該演算法可改善平均周轉時間和平均帶權周轉時間,縮短程序的等待時間,提高系統的吞吐量。缺點是對長程序非常不利,可能長時間得不到執行,且未能依據程序的緊迫程度來劃分執行的優先順序,以及難以準確估計程序的執行時間,從而影響排程效能。
(3)時間片輪轉演算法(rr)
該演算法採用剝奪策略。讓就緒程序以fcfs 的方式按時間片輪流使用cpu 的排程方式,即將系統中所有的就緒程序按照fcfs 原則,排成乙個佇列,每次排程時將cpu 分派給隊首程序,讓其執行乙個時間片,時間片的長度從幾個ms 到幾百ms。在乙個時間片結束時,發生時鐘中斷,排程程式據此暫停當前程序的執行,將其送到就緒佇列的末尾,並通過上下文切換執行當前的隊首程序,程序可以未使用完乙個時間片,就出讓cpu(如阻塞)。時間片輪轉排程演算法的特點是簡單易行、平均響應時間短,但不利於處理緊急作業。在時間片輪轉演算法中,時間片的大小對系統效能的影響很大,因此時間片的大小應選擇恰當。
作業系統實驗一 處理器排程演算法的實現
一 實驗目的 1 加深對處理機排程的作用和工作原理的理解。2 進一步認識併發執行的實質。二 實驗要求 本實驗要求用高階語言,模擬在單處理器情況下,採用多個排程演算法,對n個程序進行程序排程。語言自選。並完成實驗報告。三 實驗內容 在採用多道程式設計的系統中,往往有若干個程序同時處於就緒狀態。當就緒狀...
作業系統實驗一 處理器管理
作業系統實驗一 處理器管理 實驗報告 一 實驗目的 1 加深對處理機排程的作用和工作原理的理解。2 進一步認識併發執行的實質。二 實驗要求 本實驗要求用高階語言,模擬在單處理器情況下,採用多個排程演算法,對n個程序進行程序排程。語言自選。並完成實驗報告。三 實驗內容 在採用多道程式設計的系統中,往往...
作業系統實驗一 處理器管理
一 實驗目的 1 加深對處理機排程的作用和工作原理的理解。2 進一步認識併發執行的實質。二 實驗要求 本實驗要求用高階語言,模擬在單處理器情況下,採用多個排程演算法,對n個程序進行程序排程。語言自選。並完成實驗報告。三 實驗內容 在採用多道程式設計的系統中,往往有若干個程序同時處於就緒狀態。當就緒狀...