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

正文內(nèi)容

優(yōu)先級法、多級反饋輪轉(zhuǎn)法_進(jìn)程調(diào)度模擬設(shè)計(已修改)

2025-07-29 09:42 本頁面
 

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