1209實驗3報告

2022-09-07 13:42:09 字數 2865 閱讀 2933

實驗三 程序排程模擬程式

13物聯網   201306104116  謝敏

實驗目的

用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。

實驗要求

設計乙個有 n(n不小於5)個程序併發執行的程序排程模擬程式。

程序排程演算法:「時間片輪轉法」排程演算法對n個程序進行排程。 

2.內容

完成兩個演算法(簡單時間片輪轉法、多級反饋佇列排程演算法)的設計、編碼和除錯工作,完成實驗報告。

1) 每個程序有乙個程序控制塊(pcb)表示。程序控制塊包含如下資訊:程序名、優先順序、到達時間、需要執行時間、已用cpu時間、程序狀態等等。 

2) 每個程序的狀態可以是就緒 r(ready)、執行r(running)、或完成f(finished)三種狀態之一。

3) 就緒程序獲得 cpu後都只能執行乙個時間片。用已占用cpu時間加1來表示。

4) 如果執行乙個時間片後,程序的已占用 cpu時間已達到所需要的執行時間,則撤消該程序,如果執行乙個時間片後程序的已占用cpu時間還未達所需要的執行時間,也就是程序還需要繼續執行,應把它插入就緒佇列等待下一次排程。

5) 每進行一次排程,程式都列印一次執行程序、就緒佇列中各個程序的 pcb,以便進行檢查。   

6) 重複以上過程,直到所要程序都完成為止。

3.**

#pragma comment(linker, "/subsystem:console")

#include#include#include#include#define getpch(type) (type*)malloc(sizeof(type))

#define null 0

struct pcb

*ready=null,*p;

typedef struct pcb pcb;

sort() /* 建立對程序進行優先順序排列函式*/

else /* 程序比較優先順序,插入適當的位置中*/

else /* 插入程序優先數最低,則插入到隊尾*/ }

if(insert==0) first->link=p; }

} input() /* 建立程序控制塊函式*/ }

int space()

return(l);

} disp(pcb * pr) /*建立程序顯示函式,用於顯示當前程序*/

check() /* 建立程序檢視函式 */ }

destroy() /*建立程序撤消函式(程序執行結束,撤消程序)*/

running() /* 建立程序就緒函式(程序執行時間到,置就緒狀態*/ }

main() /*主函式*/

printf("\n\n 程序已經完成.\n");

ch=getchar();

}

4.總結

這是參考別人的程式做出來的,我自己並沒有什麼想法.

實驗三 程序排程模擬程式

13物聯網   201306104116  謝敏

實驗目的

用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。

實驗要求

設計乙個有 n(n不小於5)個程序併發執行的程序排程模擬程式。

程序排程演算法:「時間片輪轉法」排程演算法對n個程序進行排程。 

2.內容

完成兩個演算法(簡單時間片輪轉法、多級反饋佇列排程演算法)的設計、編碼和除錯工作,完成實驗報告。

1) 每個程序有乙個程序控制塊(pcb)表示。程序控制塊包含如下資訊:程序名、優先順序、到達時間、需要執行時間、已用cpu時間、程序狀態等等。 

2) 每個程序的狀態可以是就緒 r(ready)、執行r(running)、或完成f(finished)三種狀態之一。

3) 就緒程序獲得 cpu後都只能執行乙個時間片。用已占用cpu時間加1來表示。

4) 如果執行乙個時間片後,程序的已占用 cpu時間已達到所需要的執行時間,則撤消該程序,如果執行乙個時間片後程序的已占用cpu時間還未達所需要的執行時間,也就是程序還需要繼續執行,應把它插入就緒佇列等待下一次排程。

5) 每進行一次排程,程式都列印一次執行程序、就緒佇列中各個程序的 pcb,以便進行檢查。   

6) 重複以上過程,直到所要程序都完成為止。

3.**

#pragma comment(linker, "/subsystem:console")

#include#include#include#include#define getpch(type) (type*)malloc(sizeof(type))

#define null 0

struct pcb

*ready=null,*p;

typedef struct pcb pcb;

sort() /* 建立對程序進行優先順序排列函式*/

else /* 程序比較優先順序,插入適當的位置中*/

else /* 插入程序優先數最低,則插入到隊尾*/ }

if(insert==0) first->link=p; }

} input() /* 建立程序控制塊函式*/ }

int space()

return(l);

} disp(pcb * pr) /*建立程序顯示函式,用於顯示當前程序*/

check() /* 建立程序檢視函式 */ }

destroy() /*建立程序撤消函式(程序執行結束,撤消程序)*/

running() /* 建立程序就緒函式(程序執行時間到,置就緒狀態*/ }

main() /*主函式*/

printf("\n\n 程序已經完成.\n");

ch=getchar();

}

4.總結

這是參考別人的程式做出來的,我自己並沒有什麼想法.

實驗3實驗報告

遲到的實驗3實驗報告 實驗結論 練習1 先用記事本編輯彙編源程式並儲存 然後進行編譯和鏈結得到可執行檔案 編譯和鏈結時結尾加分號可以跳過一些一般情況下預設的步驟,方便一次性生成目標檔案 執行將line4和line9中暫存器dl的值分別修改為6和8 重新彙編鏈結執行,可以發現執行的結果變成了我們所修改...

實驗報告 《3》

編寫基於物件的程式。資料成員包括長寬高,體積,要求用成員函式實現下面的功能 1 由鍵盤輸入3個長方柱的長 length 寬 width 高 high 2 計算長方柱的體積 volume 和表面積 areas 3 輸入這3個長方柱的體積和表面積。html view plain copy print?i...

Linux實驗報告3

linux實驗報告3 我的作業 2009 11 10 實驗地點 a605 實驗時間 2009 11月10 星期二 一 實驗目的 二 實驗步驟及結果分析 要求 將實驗獲得的結果進行描述,基本內容包括 1.開啟虛擬機器,啟動linux,知道輸入密碼進入linux 文字介面 檢視虛擬機器的ip位址,用if...