作業系統實驗一 處理器排程演算法的實現

2022-06-05 01:21:10 字數 1435 閱讀 8784

實驗報告

一、實驗目的

(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個程序進行程序排程。語言自選。並完成實驗報告。三 實驗內容 在採用多道程式設計的系統中,往往有若干個程序同時處於就緒狀態。當就緒狀...