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

正文內(nèi)容

優(yōu)先級(jí)法、多級(jí)反饋輪轉(zhuǎn)法_進(jìn)程調(diào)度模擬設(shè)計(jì)-文庫(kù)吧

2025-06-14 09:42 本頁(yè)面


【正文】 ces_out = 1。 if(runningpriority PRIORITY4) runningpriority 。 runninguse_slices = (QUEUE_NUM+1) runningpriority。 append(amp。ready_list[QUEUE_NUMrunningpriority], amp。running)。 } } if(slices_out) running = NULL。 } void proc_run() { try_wakeup_procs()。 printf( )。 if(running == NULL) {printf(沒(méi)有進(jìn)程抵達(dá) \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。 append(amp。finished_list, amp。running)。 } else if( (rand() % 100 + 1) 30 ) { runningsleep_time = (rand()%5+1)。 append(amp。waiting_list, amp。running)。 } else { append(amp。serving_ready_list, amp。running)。 } running = NULL。 } ,運(yùn)行結(jié)果與運(yùn)行情況分析 測(cè)試用例 運(yùn)行界面 運(yùn)行結(jié)果 用多級(jí)輪轉(zhuǎn)反饋法進(jìn)行進(jìn)程調(diào)度的結(jié)果如下圖所示: 用優(yōu)先級(jí)法進(jìn)行進(jìn)程調(diào)度所得到的結(jié)果如下圖所示: 本次課程設(shè)計(jì)做得比較好地方 本次課程設(shè)計(jì)條理清楚,能夠運(yùn)用兩種不同的方法來(lái)進(jìn)行進(jìn)程調(diào)度。在進(jìn)程調(diào)度函數(shù)的實(shí)現(xiàn)時(shí)運(yùn)用的結(jié)構(gòu)體來(lái)實(shí)現(xiàn)各個(gè)的功能。 什么地方做得不太好,以后如何改正 實(shí)驗(yàn)中一些不太好的部分就是本次實(shí)驗(yàn)雖然完成了老師所要求的任務(wù),但是程序設(shè)計(jì)的界面還不是很優(yōu)秀,用戶體驗(yàn)不是很好。以后需要在這方面改進(jìn),一個(gè)好的程序不僅要有高效率,易讀性,我認(rèn)為還需要較好的用戶體驗(yàn),以后我要在這方面多加改進(jìn)。 從本設(shè)計(jì)得到的收獲 通過(guò)這次課程設(shè)計(jì),我對(duì)操作系統(tǒng)有了更進(jìn)一層的理解,同時(shí)對(duì)以前學(xué)的 c程序設(shè)計(jì)語(yǔ)言也有了更深的理解。在本次實(shí)驗(yàn)中我遇到了很多困難,本次實(shí)驗(yàn)中的程序編寫花了很久。 在這次課程設(shè)計(jì)中,我自己先熟悉各種知識(shí),然后查找相關(guān)資料來(lái)實(shí)現(xiàn)一些所需要的功能,尤其是在那兩個(gè)方法時(shí)所要運(yùn)用到的一些知識(shí)。 我覺(jué)得在以后的學(xué)習(xí)過(guò)程中還應(yīng)該多做這樣的設(shè)計(jì),它可以讓我們把所學(xué)的理論用于實(shí)踐,一方面可以檢驗(yàn)并鞏固我們所學(xué)的內(nèi)容,另一方面可以讓我們?cè)趯?shí)踐中感到所學(xué)知識(shí)的實(shí)用性,從而提高我們的學(xué)習(xí)興趣。 [1] 張繞學(xué),《計(jì)算機(jī)操作系統(tǒng)教程》,清華大學(xué)出版社 , 20xx 年 6 月 [2] 周湘貞,《操作系統(tǒng)原理與實(shí)踐教程》清華大學(xué)出版社, 20xx 年 10 月 [3] 嚴(yán)蔚敏,《數(shù)據(jù)結(jié)構(gòu) (C 語(yǔ)言版 )》清華大學(xué)出版社, 20xx 年 11 月 [4] 閔聯(lián)營(yíng),《 c++程序設(shè)計(jì)教程》武漢理工大學(xué)出版社, 20xx 年 7 月 附:源代碼 ifndef __COMMON_H__ define __COMMON_H__ define NAME_LEN 20 define INC_FACTOR 2 // 模擬時(shí)間片的延時(shí) define DELAY_COUNTER 10000 // RRMF 所需常量 define QUEUE_NUM 4 //就緒隊(duì)列的條數(shù) define PRIORITY1 4 define PRIORITY2 3 define PRIORITY3 2 define PRIORITY4 1 define USE_SLICES1 1 define USE_SLICES2 2 define USE_SLICES3 3 define USE_SLICES4 4 /********************全局?jǐn)?shù)據(jù)結(jié)構(gòu)和變量 ***********************/ // 進(jìn)程控制塊 PCB 結(jié)構(gòu) struct PCB{ char name[NAME_LEN]。 int priority。 //優(yōu)先級(jí) int arrive_time。 // 到達(dá)時(shí)間,即創(chuàng)建時(shí)間 int run_time。 // 需要的時(shí)間片數(shù) int finish_time。 // 完成時(shí)間 int sleep_time。 // 用于模擬進(jìn)程的阻塞耗時(shí) int switch_time。 // 切換隊(duì)列的時(shí)間 ( SRR 專用) int used_run_time。 // 已經(jīng)用過(guò)的時(shí)間片數(shù) short use_slices。 // 每次占用 CPU 將消耗的時(shí)間片數(shù),不同隊(duì)列中的進(jìn)程的值不一樣 ( RRMF 專用) struct PCB *next。 }。 int sys_clock = 0。 // 模擬系統(tǒng)時(shí)鐘 int add_idx = 0。 // 第幾輪添加進(jìn)程 int pre_list_size = 0。 short algorithm = 0。 // 調(diào)度算法標(biāo)記 , 0SRR 1RRMF 默認(rèn)為 0 char algo_name[5] = SSR。 short manual = 0。 // 手動(dòng),自動(dòng)標(biāo)記, 0手動(dòng) 1自動(dòng) 默認(rèn)為 0 char oper_name[10] = Manual。 int newly_factor = INC_FACTOR。 // 新創(chuàng)建進(jìn)程優(yōu)先級(jí)增長(zhǎng)速率 int serving_factor = INC_FACTOR / 2。 // 享受服務(wù)進(jìn)程優(yōu)先級(jí)增長(zhǎng) 速率 struct PCB *pre_list。 // 預(yù)先準(zhǔn)備的隊(duì)列,用于模擬進(jìn)程的不同時(shí)刻到達(dá)調(diào)度隊(duì)列 struct PCB *running。 // 指向正在運(yùn)行進(jìn)程 struct PCB *serving_ready_list。 // 享受服務(wù)進(jìn)程隊(duì)列 struct PCB *newly_ready_list。 // 新創(chuàng)建進(jìn)程隊(duì)列 struct PCB *waiting_list。 // 等待隊(duì)列 struct PCB *finished_list = NULL。 // 完成隊(duì)列 // RRMF 的多級(jí)隊(duì)列 // ready_list[0] 優(yōu)先級(jí) PRIORITY1,占時(shí)間片 USE_SLICES1 // ready_list[1] 優(yōu)先級(jí) PRIORITY2,占時(shí)間片 USE_SLICES2 // ready_list[2] 優(yōu)先級(jí) PRIORITY3,占時(shí)間片 USE_SLICES3 // ready_list[3] 優(yōu)先級(jí) PRIORITY4,占時(shí)間片 USE_SLICES4 // ... struct PCB *ready_list[QUEUE_NUM]。 /**************************函數(shù)說(shuō)明 ****************************/ char get_mand()。 // 顯示主菜單,并接受用戶命令 void add_process()。// 添加一個(gè) PCB 結(jié)構(gòu)進(jìn)入 pre_list(預(yù)先準(zhǔn)備隊(duì)列 ) void start_scheduling()。 // 演示進(jìn)程調(diào)度隊(duì)列, SRR 版 void start_scheduling_rrmf()。 // RRMF 版 void calculate_time_costs()。 // 計(jì)算并顯示平均周轉(zhuǎn)時(shí)間,平均帶權(quán)周轉(zhuǎn)時(shí)間 void switch_algorithm()。 // 切換調(diào)度算法(線性優(yōu)先級(jí)法,多級(jí)反饋輪轉(zhuǎn)法) void view_list(struct PCB *list)。 // 查看隊(duì)列中內(nèi)容 void help_menu()。 // 顯示幫助菜單 void restart()。 // 釋放資源,重新開(kāi)始 void man_auto()。 // 手動(dòng) /自動(dòng) 切換 void append(struct PCB **head, struct PCB **node)。 // 添加 node 于 head 所指隊(duì)列的隊(duì)尾 void show_process(struct PCB *node)。 // 顯示一個(gè) PCB 的內(nèi)容 void time_slice()。 // 一個(gè)時(shí)間片 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()。 // 遍歷等待隊(duì)列,減少 sleep_time,喚醒 sleep_time 降至 0 的進(jìn)程 endif //__COMMON_
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1