




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上操作系統(tǒng)課程實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱:動態(tài)高優(yōu)先權(quán)優(yōu)先算法姓 名: 王智昆 學(xué) 號: 3 地 點(diǎn): 4#302 指導(dǎo)老師: 張旭 專業(yè)班級: 運(yùn)維1402 一、 實(shí)驗(yàn)?zāi)康模?、 熟悉并掌握動態(tài)高優(yōu)先權(quán)優(yōu)先算法。2、 用C語言編程實(shí)現(xiàn)動態(tài)高優(yōu)先權(quán)優(yōu)先算法二、實(shí)驗(yàn)內(nèi)容:用高級語言模擬實(shí)現(xiàn)動態(tài)分區(qū)存儲管理,要求:模擬實(shí)現(xiàn)動態(tài)高優(yōu)先權(quán)優(yōu)先(若數(shù)值越大優(yōu)先權(quán)越高,每運(yùn)行一個時(shí)間單位優(yōu)先權(quán)-n,若數(shù)值越小優(yōu)先權(quán)越高,沒運(yùn)行一個時(shí)間單位優(yōu)先權(quán)+n),具體如下:設(shè)置作業(yè)體:作業(yè)名,作業(yè)的到達(dá)時(shí)間,服務(wù)時(shí)間,初始優(yōu)先權(quán),作業(yè)狀態(tài)(W等待,R運(yùn)行,F完成),作業(yè)間的鏈接指針作業(yè)初始化:由用戶輸
2、入作業(yè)名、服務(wù)時(shí)間、初始優(yōu)先權(quán)進(jìn)行初始化,同時(shí),初始化作業(yè)的狀態(tài)為W。顯示函數(shù):在作業(yè)調(diào)度前、調(diào)度中和調(diào)度后進(jìn)行顯示。排序函數(shù):對就緒狀態(tài)的作業(yè)按照優(yōu)先權(quán)排序。優(yōu)先權(quán)相同時(shí)進(jìn)入等待隊(duì)列時(shí)間早的作業(yè)在前。注意考慮到達(dá)時(shí)間調(diào)度函數(shù):每次從等待隊(duì)列隊(duì)首調(diào)度優(yōu)先權(quán)最高的作業(yè)執(zhí)行,狀態(tài)變化。并在執(zhí)行一個時(shí)間單位后優(yōu)先權(quán)變化,服務(wù)時(shí)間變化,狀態(tài)變化。當(dāng)服務(wù)時(shí)間為0時(shí),狀態(tài)變?yōu)镕。刪除函數(shù):撤銷狀態(tài)為F的作業(yè)。#include <stdio.h>#include <stdlib.h>struct PCB char p_name20; int p_priority; int p_nee
3、dTime; int p_runTime; char p_state; struct PCB* next;void HighPriority();void Information();char Choice();struct PCB* SortList(PCB* HL);int main() printf(" 演示最高優(yōu)先數(shù)優(yōu)先算法nn"); HighPriority(); return 0;void HighPriority() struct PCB *processes, *pt; /pt作為臨時(shí)節(jié)點(diǎn)來創(chuàng)建鏈表 processes = pt = (struct PCB*
4、)malloc(sizeof(struct PCB); for (int i = 0; i != 5; +i) struct PCB *p = (struct PCB*)malloc(sizeof(struct PCB); printf("進(jìn)程號No.%d:n", i); printf("輸入進(jìn)程名 輸入進(jìn)程優(yōu)先數(shù) 輸入進(jìn)s程運(yùn)行時(shí)間 n"); scanf("%s%d%d", p->p_name,&p->p_priority,&p->p_needTime); p->p_runTime = 0;
5、p->p_state = 'W' p->next = NULL; pt->next = p; pt = p; printf("nn"); getchar(); /接受回車 /processes作為頭結(jié)點(diǎn)來存儲鏈表 processes = processes->next; int cases = 0; struct PCB *psorted = processes; while (1) +cases; pt = processes; /對鏈表按照優(yōu)先數(shù)排序 /psorted用來存放排序后的鏈表 psorted = SortList(ps
6、orted); printf("The execute number: %dnn", cases); printf("* 當(dāng)前正在運(yùn)行的進(jìn)程是:%sn", psorted->p_name); psorted->p_state = 'R' printf("qname state super ndtime runtimen"); printf(" %st%ct%dt%dtnn", psorted->p_name, psorted->p_state, psorted->p_n
7、eedTime, psorted->p_runTime); pt->p_state = 'W' psorted->p_runTime+; psorted->p_priority-; printf("* 當(dāng)前就緒狀態(tài)的隊(duì)列為:nn"); /pt指向已經(jīng)排序的隊(duì)列 pt = psorted->next; while (pt != NULL) printf("qname state super ndtime runtimen"); printf(" %st%ct%dt%dtnn",psorted
8、->p_name, psorted->p_state, psorted->p_needTime, psorted->p_runTime); pt = pt->next; /pt指向已經(jīng)排序的鏈表,判斷鏈表是否有已用時(shí)間啊等于需要時(shí)間的 pt = psorted; struct PCB *ap; ap = NULL; /ap指向pt的前一個節(jié)點(diǎn) while (pt != NULL) if (pt->p_needTime = pt->p_runTime) if (ap = NULL) pt = psorted->next; psorted = pt;
9、 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; stru
10、ct PCB* ap = NULL; while (cp != NULL) if (r->p_priority > cp->p_priority) break; else ap = cp; cp = cp->next; if (ap = NULL) r->next = SL; SL = r; else r->next = cp; ap->next = r; r = t; return SL;四、實(shí)驗(yàn)結(jié)果五、實(shí)驗(yàn)總結(jié)本次試驗(yàn)感覺難度比較大,有很多生疏的指令。但在老師和同學(xué)的幫助下都解決了。 總體上還是對進(jìn)程概念和進(jìn)程調(diào)度過程有了一個更深的理解。在這次試驗(yàn)中也暴露出自己不少的缺點(diǎn),希望以后試驗(yàn)中可以改正! 本文利用C 語言對動態(tài)優(yōu)先權(quán)的進(jìn)程調(diào)度算法進(jìn)行了設(shè)計(jì)和模擬實(shí)現(xiàn)。程序可實(shí)現(xiàn)動態(tài)的進(jìn)行各個進(jìn)程相關(guān)信息的錄入, 如CPUTIME、ALLTIME、STARTBLOCK、BLOCKTIME 等信息。并充分考慮了進(jìn)程在執(zhí)行過程中可能發(fā)生的多種情況, 更好的體現(xiàn)了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 證券投資分析策略與實(shí)踐應(yīng)用試題
- 夏日冰棒美術(shù)課件
- 社交媒體營銷策略案例分析與探討題
- 汽車行業(yè)技術(shù)研發(fā)經(jīng)驗(yàn)證明書(6篇)
- 生產(chǎn)安全檢查知識手冊
- 農(nóng)村集體經(jīng)濟(jì)合作社章程及合作協(xié)議書
- 行政管理中的前沿公共關(guān)系學(xué)試題及答案
- 2025年行業(yè)前景試題及答案
- 行政管理經(jīng)濟(jì)法概論重難點(diǎn)探討試題及答案
- 水利水電工程關(guān)鍵考點(diǎn)及復(fù)習(xí)策略試題及答案
- 浙江水利專業(yè)高級工程師任職資格考試題及答案
- 2024年南京市雨花臺區(qū)數(shù)學(xué)三年級第一學(xué)期期末學(xué)業(yè)水平測試模擬試題含解析
- 醫(yī)院培訓(xùn)課件:《靜脈中等長度導(dǎo)管臨床應(yīng)用專家共識》
- 汽車維修工(汽車維修檢驗(yàn)工)技能考核內(nèi)容結(jié)構(gòu)表與技能考核要素細(xì)目表
- 柘榮縣生態(tài)公益林護(hù)林員考核評分表
- 攤位簡單轉(zhuǎn)讓合同范本2024年
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)(廣西師范大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年廣西師范大學(xué)
- 鄂爾多斯2024年內(nèi)蒙古鄂爾多斯市康巴什區(qū)事業(yè)單位招聘31人筆試歷年典型考題及考點(diǎn)附答案解析
- 珠寶零售店合伙人退伙協(xié)議
- 2024年美國戶外露營裝備市場現(xiàn)狀及上下游分析報(bào)告
- 《大學(xué)生創(chuàng)業(yè)》課件完整版
評論
0/150
提交評論