freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

優(yōu)先級法、多級反饋輪轉法_進程調度模擬設計(已修改)

2025-07-29 09:42 本頁面
 

【正文】 學 號: 課 程 設 計 題 目 進程 調度 模擬設計 —— 優(yōu)先級法、多級反饋輪轉法 學 院 計算機學院 專 業(yè) 班 級 姓 名 指導教師 吳利軍 20xx 年 1 月 15 日 課程設計任務書 學生姓名: 指導教師: 吳利軍 工作單位: 計算機科學與技術學院 題 目 : 進程 調度 模擬設計 —— 優(yōu)先級法、多級反饋輪轉法 初始條件: 1.預備內(nèi)容:閱讀操作系統(tǒng)的處理機管理章節(jié)內(nèi)容, 對進程調度的功能以及進程調度算法有深入的理解。 2.實踐準備:掌握一種計算機高級語言的使用。 要求完成的主要任務 : (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求) 1.模擬進程調度, 能夠處理以下的情形: ⑴ 能夠選擇不同的調度算法(要求中給出的調度算法) ; ⑵ 能夠輸入進程的基本信息,如進程名、優(yōu)先級、到達時間和運行時間等; ⑶ 根據(jù)選擇的調度算法 顯示進程調度隊列 ; ⑷ 根據(jù)選擇的調度算法計算平均周轉時間和平均帶權周轉時間。 2.設計報告內(nèi)容應說明: ⑴ 需求分析; ⑵ 功能設計(數(shù)據(jù)結構及模塊說明); ⑶ 開發(fā)平臺及源程序的主要部分; ⑷ 測試用例,運行結果與運行情況分析; ⑸ 自我評價與總結: i)你認為你完成的設計哪些地方做得比較好或比較出色; ii)什么地方做得不太好,以后如何改正; iii)從本設計得到的收獲(在編寫,調試,執(zhí)行過程中的經(jīng)驗和教訓); iv)完成本題是否有其他方法(如果有,簡要說明該方法); 時間安排: 設計安排一周:周 周 2:完成程序分析及設計。 周 周 3:完成程序調試及測試。 周 周 5:驗收、撰寫課程設計報告。 (注意事項: 嚴禁抄襲,一旦發(fā)現(xiàn),一律按 0分記) 指導教師簽名: 年 月 日 系主任(或責任教師)簽名: 年 月 日 進程調度模擬設計 —— 優(yōu)先級法、多級輪轉反饋法 1 設計目的與功能 設計目的 了解進程調度中的相關知識,能夠使用其中的方法來進行進程調度模擬設計。本次課程設計的重點是多級輪轉反饋法和優(yōu)先級法的使用,要求熟練掌握并運用他們,并能夠運用一種高級語言來完成這個程序。 設計功能 模擬進程調度, 能夠處理以下的情形: ⑴ 能夠選擇不同的調度算法(要求中給出的調度算法) ; ⑵ 能夠輸入進程的基本信息,如進程名、優(yōu)先級、到達時間和運行時間等; ⑶ 根據(jù)選擇的調度算法 顯示進程調度隊列 ; ⑷ 根據(jù)選擇的調度算法計算平均周轉時間和平均帶權周轉時間。 ,數(shù)據(jù)結構或模塊說明 (功能與框圖 ) 需求分析 無論是在批處理系統(tǒng)、分時系統(tǒng)還是實時系統(tǒng),用戶進程數(shù)一般都多于處理機數(shù),這將導致用戶進程互相爭奪處理機。另外,系統(tǒng)進程也同樣需要使用處理機。這就要求進程調度程序按照一定的策略,動態(tài)地把處理機分配給處于就緒隊列中的某一個進程,以使之執(zhí)行。進程調度的主要任務是按照某種策略和方法選取一個處于就緒狀態(tài)的進程占用處理機。這次課程設計所要求使用的方法是時間片輪轉和優(yōu)先級法,并且能夠選擇不同的算法。 而時間片輪轉法的基本思路是讓每個進程在就緒隊列中的等待時間與享受服務的時間成比例。時間片輪轉法的基本概念是 將 CPU 的處理時間分成固定大小的時間片。如果一個進程選中之后用完了系統(tǒng)規(guī)定的時間片,但未完成要求的任務,則它自行釋放自己所占有的 CPU 而排到就緒隊列的末尾,等待下一次調度。同時,進程調度程序又去調度當前就緒隊列中的第一個進程或作業(yè)。優(yōu)先級法是系統(tǒng)或用戶按某種原則為作業(yè)或進程指定一個優(yōu)先級來表示該作業(yè)或進程所享有的調度優(yōu)先權。優(yōu)先級高的作業(yè)或進程優(yōu)先調度。 根據(jù)所需求,這個進程調度的實現(xiàn)過程如下圖所示: 數(shù)據(jù)結構和模塊說明 主要數(shù)據(jù)結構 : struct PCB{ char name[NAME_LEN]。 int priority。 //優(yōu)先級 int arrive_time。 // 到達時間,即創(chuàng)建時間 int run_time。 // 需要的時間片數(shù) 開始 選擇調度方法 時間片輪轉 優(yōu)先級法 輸入進程信息 顯示進程調度隊列列 計算平均周轉時間和平均帶權周轉時間并顯示出來 int finish_time。 // 完成時間 int sleep_time。 // 用于模擬進程的阻塞耗時 int switch_time。 // 切換隊列的時間( SRR專用) int used_run_time。 // 已經(jīng)用過的時間片數(shù) short use_slices。 // 每次占用 CPU將消耗的時間片數(shù)不同隊列中的進程的值不一樣( RRMF專用) struct PCB *next。 }。 程序中主要函數(shù) char get_mand()。 // 顯示主菜單并接受用戶令 void add_process()。 // 添加一個 PCB結構進入預先準備隊列 void start_scheduling()。 // 演示進程調度隊列, SRR版 void start_scheduling_rrmf()。 // RRMF版 void calculate_time_costs()。 // 計算并顯示平均周轉時間,平均帶權周轉時間 void switch_algorithm()。 // 切換調度算法(線性優(yōu)先級法,多級反饋輪轉法 ) void view_list(struct PCB *list)。 //查看隊列中內(nèi)容 void help_menu()。 // 顯示幫助菜單 void restart()。 // 釋放資源,重新開始 void man_auto()。 // 手動自動切換 void append(struct PCB **head, struct PCB **node)。 // 添加于所指隊列的隊尾 void show_process(struct PCB *node)。 // 顯示一個 PCB的內(nèi)容 void time_slice()。 // 一個時間片 void proc_run()。 // 進程執(zhí)行 void proc_run_rrmf()。 // RRMF版 void proc_switch()。 // 進程切換 void proc_switch_rrmf()。 // RRMF版 void try_wakeup_procs()。 // 遍歷等待隊列,減少 sleep_time,喚醒 sleep_time降至進程 本次程序主要由三個部分組成: main 函數(shù)部分,該部分主要包含 main 函數(shù);LRU算法部分,該部分主要包含 LRU函數(shù)、 setm(int m,int n)函數(shù)和 mini(int *b)函數(shù); OPT 算法部分,該部分主要包含 OPT 函數(shù)和 getOpt(int inPage)函數(shù)。 main 函數(shù)部分 函數(shù)代碼: int main(int argc, char *argv[]) { char mand。 srand( (unsigned)time(NULL) )。 restart()。 while((mand = get_mand()) != 39。039。)。 } 進程調度方法部分 : //進程執(zhí)行( RRMF算法) void proc_run_rrmf() { short slices_out = 0。 try_wakeup_procs()。 printf( )。 if(running == NULL) { printf(沒 ?有 174。D進 ?程 168。172。 到 204。?達 228。?!\n)。 return。 } printf(進程正在運行 :, runningname)。 runningused_run_time ++。 runningnext = NULL。 show_process(running)。 printf(\n)。 if(runningused_run_time == runningrun_time) { runningfinish_time = sys_clock。 runninguse_slices = (QUEUE_NUM+1) runningpriority。 append(amp。finished_list, amp。running)。 slices_out = 1。 } else if( (rand() % 100 + 1) 30 ) { runningsleep_time = (rand()%5+1)。 runninguse_slices = (QUEUE_NUM+1) runningpriority。 append(amp。waiting_list, amp。running)。 slices_out = 1。 } else { runninguse_slices 。 if(0 == runninguse_slices) { sli
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1