FPF和RR調度算法_第1頁
FPF和RR調度算法_第2頁
FPF和RR調度算法_第3頁
FPF和RR調度算法_第4頁
FPF和RR調度算法_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、鄭州輕工業(yè)學院本科實驗報告設計題目: 實現(xiàn)FPF和RR調度算法 學生姓名: 李洋 系 別: 計算機與通信工程學院 專 業(yè): 網(wǎng)絡運維 班 級: 13-03 學 號: 521507110314 指導教師: 吳慶崗 2021 年 11 月 18 日一、實驗目的編寫程序,實現(xiàn)FPF和RR算法,模擬進程調度過程,加深對作業(yè)調度的理解。二、實驗內容實現(xiàn)FPF和RR調度算法。 數(shù)據(jù)結構設計PCB,進程就緒隊列 算法實現(xiàn)與模擬排序、調度 輸出調度結果,展示調度過程并解釋三、實驗要求1. 設計進程控制塊(PCB)的數(shù)據(jù)結構 應包含實驗必須的數(shù)據(jù)項,如進程ID、需要的效勞時間、進入系統(tǒng)時間、完成時間、周轉時間、

2、優(yōu)先權、進程狀態(tài)R-運行,W-等待,以及實驗者認為有必要的其他數(shù)據(jù)項。2. 實現(xiàn)排序算法將就緒隊列中的進程排序 RR:只需在開始時排序,按FCFS策略將進程依次插入就緒隊列。開始運行后不再需要排序,按RR策略將每一個剛剛運行完一個時間片的進程插入到隊尾。 FPF:每次調度前排序,按計算所得的動態(tài)優(yōu)先權排成有序隊列,最高優(yōu)先權排進程在隊首,優(yōu)先權相同的進程按FCFS策略排隊。3. 實現(xiàn)RR調度過程模擬每個進程用一個PCB表示,按FCFS策略排成就緒隊列,按照固定的周期循環(huán)調度。選擇隊首的進程,將其從就緒隊列移出,修改其狀態(tài)為R。經(jīng)過一個時間片,如果正在執(zhí)行的進程沒有執(zhí)行完,修改其狀態(tài)為W,插入到

3、就緒隊列尾部。如果執(zhí)行完畢,計算其周轉時間。進行下一次調度去往第步,直到就緒隊列為空。4. 實現(xiàn)FPF調度過程模擬每個進程用一個PCB表示。計算動態(tài)優(yōu)先權,按優(yōu)先權上下排入就緒隊列,如果相同,那么按FCFS排隊。系統(tǒng)開始時調度,每個進程結束時進行調度。選擇隊首的作業(yè),將其從后備隊列移出計算選中作業(yè)的周轉時間進程運行過程,在本實驗中,無需實現(xiàn),可認為就緒隊列上的進程一但被調度程序選出,就順利運行結束進行下一次調度去往第步5.實現(xiàn)結果輸出 輸出進程狀態(tài)表,展示調度過程 初始進程狀態(tài)未調度時 每次調度后的進程狀態(tài)6.撰寫實驗報告 包含實驗要求中14項內容,要求有設計圖結構圖/流程圖和源代碼。 注明使

4、用的編程語言和環(huán)境??记绊氈?實驗中注重實現(xiàn)算法本質高優(yōu)先權優(yōu)先FPF,時間片輪轉RR。 兩個算法可以選做一個,量力而行,鼓勵多做。 FPF算法也適用于作業(yè)調度。關于作業(yè)調度和進程調度的區(qū)別,只要求概念上理解清楚,不要求實現(xiàn)。#include <stdio.h>#include <stdlib.h>struct PCB char p_name20; int p_priority; int p_needTime; int p_runTime; char p_state; struct PCB* next;void HighPriority();void RoundRobi

5、n();void Information();char Choice();struct PCB* SortList(PCB* HL);int main() Information(); char choice = Choice(); switch(choice) case '1': system("cls"); HighPriority(); break; default: break; system("pause"); return 0;void Information() printf(" 按回車鍵進入演示程序")

6、; getchar(); system("cls");char Choice() printf("nn"); printf(" 1.演示最高優(yōu)先數(shù)優(yōu)先算法。"); printf(" 按1繼續(xù):"); char ch = getchar(); return ch; system("cls");void HighPriority() struct PCB *processes, *pt; /pt作為臨時節(jié)點來創(chuàng)立鏈表,使用for語句,限制進程數(shù)為5個 processes = pt = (struct

7、 PCB*)malloc(sizeof(struct PCB); for (int i = 0; i != 5; +i) struct PCB *p = (struct PCB*)malloc(sizeof(struct PCB); printf("進程號No.%d:n", i); printf("輸入進程名:"); scanf("%s", p->p_name); printf("輸入進程優(yōu)先數(shù):"); scanf("%d", &p->p_priority); printf(

8、"輸入進程運行時間:"); scanf("%d", &p->p_needTime); p->p_runTime = 0; p->p_state = 'W' p->next = NULL; pt->next = p; pt = p; printf("nn"); getchar(); /接受回車 /processes作為頭結點來存儲鏈表 processes = processes->next; int cases = 0; struct PCB *psorted = proces

9、ses; while (1) +cases; pt = processes; /對鏈表按照優(yōu)先數(shù)排序 /psorted用來存放排序后的鏈表 psorted = SortList(psorted); printf("The execute number: %dnn", cases); printf("* 當前正在運行的進程是:%sn", psorted->p_name); psorted->p_state = 'R' printf("qname state super ndtime runtimen"); p

10、rintf("%st%ct%dt%dt%dtnn", psorted->p_name, psorted->p_state, psorted->p_priority, psorted->p_needTime, psorted->p_runTime); pt->p_state = 'W' psorted->p_runTime+; psorted->p_priority-; printf("* 當前就緒狀態(tài)的隊列為:nn"); /pt指向已經(jīng)排序的隊列 pt = psorted->next;

11、 while (pt != NULL) printf("qname state super ndtime runtimen"); printf("%st%ct%dt%dt%dtnn", pt->p_name, pt->p_state, pt->p_priority, pt->p_needTime, pt->p_runTime); pt = pt->next; /pt指向已經(jīng)排序的鏈表,判斷鏈表是否有已用時間啊等于需要時間的 pt = psorted; struct PCB *ap; ap = NULL; /ap指向pt

12、的前一個節(jié)點 while (pt != NULL) if (pt->p_needTime = pt->p_runTime) if (ap = NULL) pt = psorted->next; psorted = pt; else ap->next = pt->next; ap = pt; pt = pt->next; if (psorted->next = NULL) break; getchar(); struct PCB* SortList(PCB* HL) struct PCB* SL; SL = (struct PCB*)malloc(sizeof(struct PCB); SL = NULL; struct PCB* r = HL; while (r != NULL) struct PCB* t = r->next; struct PCB* cp = SL; struct PCB* ap = NULL; whi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論