作業系統實驗報告實驗一程序管理

2021-08-10 13:53:56 字數 1853 閱讀 2774

程序排程是處理機管理的核心內容。本實驗要求編寫和除錯乙個簡單的程序排程程式。通過本實驗加深理解有關程序控制塊、程序佇列的概念,並體會和了解程序排程演算法的具體實施辦法。

1、設計程序控制塊pcb的結構(pcb結構通常包括以下資訊:程序名(程序id)、程序優先數、輪轉時間片、程序所占用的cpu時間、程序的狀態、當前佇列指標等。可根據實驗的不同,pcb結構的內容可以作適當的增刪)。

為了便於處理,程式中的某程序執行時間以時間片為單位計算。各程序的輪轉時間數以及程序需執行的時間片數的初始值均由使用者給定。

2、系統資源(r1…rw),共有w類,每類數目為r1…rw。隨機產生n程序pi(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt為總執行時間,在執行過程中,會隨機申請新的資源。

3、每個程序可有三個狀態(即就緒狀態w、執行狀態r、等待或阻塞狀態b),並假設初始狀態為就緒狀態。建立程序就緒佇列。

4、編制程序排程演算法:時間片輪轉排程演算法

本程式用該演算法對n個程序進行排程,程序每執行一次,cpu時間片數加1,程序還需要的時間片數減1。在排程演算法中,採用固定時間片(即:每執行一次程序,該程序的執行時間片數為已執行了1個單位),這時,cpu時間片數加1,程序還需要的時間片數減1,並排列到就緒佇列的尾上。

作業系統環境:windows系統。

程式語言:c#。

1、程式流程圖

2、主要程式**

//pcb結構體

struct pcb

arraylist hready = new arraylist();

arraylist hblock = new arraylist();

random random = new random();

//arraylist p = new arraylist();

int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1inteval;//m為要模擬的程序個數,n為初始化程序個數

r為可隨機產生的程序數(r=m-n)

a,b,c分別為a,b,c三類資源的總量

i為進城計數,i=1…n

h為執行的時間片次數,time1inteval為時間片大小(毫秒)

//對程序進行初始化,建立就緒陣列、阻塞陣列。

public void input()//對程序進行初始化,建立就緒佇列、阻塞佇列

else

listbox1.items.add("當前程序狀態:" + jincheng.state);

}}//從陣列起始位址開始輸出該陣列的內容

public void disp(arraylist list)

else

}//輸出就緒陣列和阻塞陣列的資訊

public void outputall()

//執行就緒陣列的頭程序,執行乙個時間片,輪轉乙個時間片,時間片輪轉排程演算法

public void running()

{ arraylist hready1 = new arraylist();

hready1 = hready;

pcb p1 = new pcb();

p1=(pcb)hready1[0];

p1.state='r';

p1.rtime= p1.rtime + 1;

h=h+1;

listbox1.items.add("\r\n~~~~~~~當前正在執行程序id是:" +p1.idr\n");

listbox1.items.add("\r\n程序id 程序狀態 a資源數 b資源數 c資源數所需時間片已執行時間片\r\n");

listbox1.items.add(p1.idp1.statep1.rap1.rbp1.rcp1.ntimep1.rtime);

作業系統程序排程實驗報告

實驗一程序排程實驗 專業 xx 學號 xx 姓名 實驗日期 20xx年xx月xx日 一 實驗目的 通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。二 實驗要求 編寫程式實現對5個程序的排程模擬,要求至少採用兩種不同的排程演算法分別進行模擬排程。三 實驗方法內容 1.演算法設計思路 將...

作業系統程序排程實驗報告

哈爾濱工業大學電腦科學與技術學院 實驗報告 課程名稱 作業系統 課程型別 必修 實驗專案名稱 程序排程 實驗題目 先來先服務和優先順序排程的實現 班級 學號 姓名 一 實驗目的 二 實驗要求及實驗環境 由於在多道程式或多個任務系統中,系統同時處於就緒狀態的程序有若干個,即能執行的程序數遠大於處理機個...

實驗一程序排程實驗報告

專業 嵌入式 軟體 學號 541013090210 姓名 郝春玲 實驗日期 2012年12月27日 一 實驗目的 通過對程序排程演算法的模擬加深對程序概念和程序排程演算法的理解。二 實驗要求 編寫程式實現對5個程序的排程模擬,採用優先權的排程演算法分別進行模擬排程。三 實驗方法內容 1.演算法設計思...