實驗三 程序排程模擬程式
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...