作業系統課程設計實踐報告

2021-03-14 14:01:24 字數 2520 閱讀 5265

南通大學電腦科學與技術學院

作業系統實驗報告

班級:軟體工程121

姓名:金凱

學號:1102052019

指導老師:戴樹貴

時間:19周一周

程式流程圖一覽

fcfs:在多道程式或多工系統中,系統中同時處於就緒態的程序又若干個,也就是說能執行的程序數遠遠大於處理機個數,為了使系統中的各個程序能有條不紊的執行,必須選擇某種排程策略,以選擇一程序占用處理機。

rr:如果早就緒的程序排在就緒佇列的前面,遲就緒的程序排在就緒佇列的後面,那麼先來先服務fcfs (first ***e first service)總是把當前處於就緒佇列之首的那個程序排程到執行狀態。也就說,它只考慮程序進入就緒佇列的先後,而不考慮它的下乙個cpu週期的長短及其他因素。

fcfs演算法簡單易行,但效能卻不大好。

如果在時間片結束時程序還在執行,則cpu將被剝奪並分配給另乙個程序。如果程序在時間片結束前阻塞或結束,則cpu當即進行切換。排程程式所要做的就是維護一張就緒程序列表,當程序用完它的時間片後,它被移到佇列的末尾。

優先順序排程:(1)當該演算法用於作業排程時,系統從後備作業佇列中選擇若干個優先順序最高的,且系統能滿足資源要求的作業裝入記憶體執行。(2)當該演算法用於程序排程時,將把處理機分配給就緒程序佇列中優先順序最高的程序。

int fcfs()/*先來先服務演算法*/

fcfsoutput();

return 0;

}int fcfsinput() /*程序引數的初始化,按照教材127頁最上面的***/

} //初始化每個程序估計執行的時間

tasks[0].run_time=28;tasks[1].run_time=9; tasks[2].run_time=3;

//初始化每個程序的名字

tasks[0].name='a';tasks[1].name='b';tasks[2].name='c';

cout《先來先服務演算法

return 0;

}int fcfsoutput() /*排程結果輸出*/

cout<<"平均周轉時間:"

return 0;

}int ps() /*優先順序排程*/

j++;

查詢第乙個被排程的程序*/

/*對第乙個被排程的程序求相應的引數*/

number_schedul=i;

tasks[number_schedul].run_begin_time=tasks[number_schedul].***e_time;

tasks[number_schedul].run_end_time=tasks[number_schedul].run_begin_time+tasks[number_schedul].

run_time;

tasks[number_schedul].run_flag=1;

temp_time=tasks[number_schedul].run_end_time;

tasks[number_schedul].order=1;

temp_counter=1;

while (temp_counter

tasks[number_schedul].run_begin_time=temp_time;

tasks[number_schedul].run_end_time=tasks[number_schedul].run_begin_time+tasks[number_schedul].

run_time;

tasks[number_schedul].run_flag=1;

temp_time=tasks[number_schedul].run_end_time;

temp_counter++;

tasks[number_schedul].order=temp_counter;

}psoutput();

return 0;

}int psinput() /*程序引數的初始化*/

{ int i;

//初始化程序數

counter=3;

//初始化每個到達系統的時間

tasks[0].***e_time=4;tasks[1].***e_time=5;tasks[2].***e_time=6;

//初始化每個程序估計執行的時間

tasks[0].run_time=5;tasks[1].run_time=10;tasks[2].run_time=8;

//初始化每個程序的名字

tasks[0].name='a';tasks[1].name='b';tasks[2].name='c';

//初始化優先順序

tasks[0].priority=rand()%5+3;tasks[1].priority=rand()%3;tasks[2].priority=rand()%3;

cout《優先順序排程演算法

tasks[i].run_begin_time=0;

tasks[i].run_end_time=0;

作業系統課程設計報告

上海電力學院 計算機作業系統原理 課程設計報告 題目名稱 編寫程式模擬虛擬儲存器管理 姓名 杜志豪 學號 20121798 班級 2012053班 同組姓名 孫嘉軼 課程設計時間 2014.6.30 2014.7.4 評語成績 一 設計內容及要求4 1.1 設計題目4 1 2 使用演算法分析4 1 ...

作業系統課程設計報告

作業系統 課程設計報告 姓名吳昊學號 20091811042 系別資訊管理與工程系 專業電腦科學與技術班級 09級 課程設計題目模擬檔案管理系統 指導教師崔新會 小組成員吳昊 丁強強 辛夢娟 王放 周洋 2012 年 6 月 11 日 目錄 內容摘要 2 第一章引言 2 第二章需求分析 4 第三章系...

作業系統課程設計報告

課程設計說明書 設計名稱 作業系統課程設計 題目 檔案訪問介面設計 學生姓名 陳小浪 專業 電腦科學與技術 班級 12級1班 學號 2012314118 指導教師 任朝暉 日期 2014 年 9 月 15 日 課程設計任務書 電腦科學與技術專業年級班 一 設計題目 檔案訪問介面設計 二 主要內容 利...