作業系統模擬實驗 處理器排程 c 模擬

2021-10-07 18:00:18 字數 1263 閱讀 6419

選擇乙個排程演算法,實現處理器排程。

本實習模擬在單處理器環境下的處理器排程,加深了解處理器排程的工作。

設計乙個按時間片輪轉法實現處理器排程的程式

[提示]:

(1)假定系統有5個程序,每個程序用乙個pcb來代表。pcb的結構為:

·程序名——如q1~q5。

·指標——把5個程序連成佇列,用指標指出下乙個程序pcb的首位址。

·要求執行時間——假設程序需要執行的時間單位數。

·已執行時間——程序已執行的時間單位數,初始值為0。

·狀態——假設兩種狀態,就緒和結束,用r表示就緒,用e表示結束。初始狀態都為就緒狀態。

(2) 執行之前,為每個程序確定它的「要求執行時間」。通過鍵盤輸入這些引數。

(3) 把5個程序按順序排成迴圈佇列,用指標指出佇列連線情況。用乙個標誌單元記錄輪到執行的程序。處理器排程總是選擇標誌單元指示的程序執行,對所指的程序,將其「已執行時間」加1。

(4) 程序執行一次後,若「要求執行時間」等於「已執行時間」,則將狀態改為「結束」,退出佇列,否則將繼續輪轉。

(5) 若就緒隊列為空,結束,否則轉到(3)重複。

要求能接受鍵盤輸入的程序要求執行時間,能顯示每次程序排程的情況,如哪個程序在執行,哪些程序就緒。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace caozuoxitong1

program.

work()

;}catch

}static

public

void

work()

else

else number +=1

;work()

;}}}

class

pcb//程序名

public

double rtime

//要求執行時間

public

double ctime

//已經完成執行時間

public

enum isornot

public

isornot judge;

public

pcb(

string name)

}}

才疏學淺,如有錯誤請多指正

作業系統原理之處理器排程實驗

實驗目的與要求 在採用多道程式設計的系統中,往往有若干個程序同時處於就緒狀態。當就緒狀態程序個數大於處理器數時,就必須依照某種策略來決定哪些程序優先占用處理器。本實驗模擬在單處理器情況下處理器排程,幫助學生加深了解處理器排程的工作。二 實驗要求 1 實驗題目。2 程式中使用的資料結構及符號說明。3 ...

作業系統原理 處理器排程

1 處理機按照層次被劃分為為 排程 排程按照頻率從高到低依次被命名為低階排程,中級排程和高階排程 低階排程 又稱為程序排程,此種排程頻率最高.也是最基本的排程。就是cpu不再執行當前程序,而是執行乙個就緒態的程序 中級排程 又稱為交換排程,這種排程就是將記憶體中暫時不用的程序移至外存.把外存等待的程...

作業系統 處理器排程

1 cpu資源的時分復用 程序切換 cpu資源的當前占用者切換。處理器排程 排程程式 挑選就緒程序的核心函式。2 排程演算法 3 死鎖 死鎖是多個程序在爭奪資源的過程中造成的僵局。例如 a和b程序都需要資源s1和s2,當a獲得了s1,b獲得了s2,但是兩個人都不釋放獲得的資源,但是也都不能執行,這就...