版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、天津理工大學(xué)計(jì)算機(jī)與通信工程學(xué)院實(shí)驗(yàn)報(bào)告2011 至 2012 學(xué)年 第 二 學(xué)期課程名稱操作系統(tǒng)實(shí)驗(yàn)( 1 )實(shí)驗(yàn)名稱處理機(jī)調(diào)度算法的實(shí)現(xiàn)實(shí)驗(yàn)時(shí)間 2012 年 5月 5日 第 1 節(jié) 至 第 6 節(jié)學(xué)號(hào)姓名*專業(yè)主講教師輔導(dǎo)教師 軟件環(huán)境VC+6硬件環(huán)境PC機(jī)實(shí)驗(yàn)?zāi)康?了解操作系統(tǒng)處理機(jī)調(diào)度的基本概念,處理機(jī)調(diào)度程序的功能,常用的處理機(jī)調(diào)度算法。C或C+編程方法與語(yǔ)句格式,提前初步編好實(shí)驗(yàn)程序。實(shí)驗(yàn)內(nèi)容(應(yīng)包括實(shí)驗(yàn)題目、實(shí)驗(yàn)要求、實(shí)驗(yàn)任務(wù)等)實(shí)驗(yàn)題目:處理機(jī)調(diào)度算法的實(shí)現(xiàn)實(shí)驗(yàn)要求:學(xué)生應(yīng)正確地設(shè)計(jì)有關(guān)的數(shù)據(jù)結(jié)構(gòu)與各個(gè)功能模塊,畫(huà)出程序的流程圖,編寫(xiě)程序,程序執(zhí)行結(jié)果應(yīng)正確。實(shí)驗(yàn)任務(wù):1.設(shè)
2、定系統(tǒng)中有五個(gè)進(jìn)程,每一個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊表示。2. 輸入每個(gè)進(jìn)程的“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”,3.為了調(diào)度方便,將五個(gè)進(jìn)程按給定的優(yōu)先數(shù)從大到小連成就緒隊(duì)列。用一單元指出隊(duì)列首進(jìn)程,用指針指出隊(duì)列的連接情況。4. 處理機(jī)調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行。采用動(dòng)態(tài)優(yōu)先數(shù)算法,進(jìn)程每運(yùn)行一次優(yōu)先數(shù)就減“1”,同時(shí)將運(yùn)行時(shí)間減“1”。5.若要求運(yùn)行時(shí)間為零,則將其狀態(tài)置為“結(jié)束”,且退出隊(duì)列。6.運(yùn)行所設(shè)計(jì)程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名以及進(jìn)程控制塊的動(dòng)態(tài)變化過(guò)程實(shí)驗(yàn)過(guò)程與實(shí)驗(yàn)結(jié)果(可包括實(shí)驗(yàn)實(shí)施的步驟、算法描述、流程、結(jié)論等)實(shí)驗(yàn)步驟:1. 根據(jù)實(shí)驗(yàn)任務(wù),先進(jìn)行算法構(gòu)思。因?yàn)槭遣扇「邇?yōu)先權(quán)調(diào)
3、度算法,因此在編寫(xiě)程序之前,先構(gòu)思算法。具體算法見(jiàn)下面算法描述。2. 根據(jù)上一步驟寫(xiě)好的算法。3. 編寫(xiě)程序。4. 采用VC+進(jìn)行程序的編寫(xiě),并對(duì)編寫(xiě)的程序進(jìn)行測(cè)試(1)初始化進(jìn)程信息。(2)將各個(gè)進(jìn)程按優(yōu)先數(shù)從高到低排列成就緒隊(duì)列。(3)檢查所有隊(duì)列是否為空,若空則結(jié)束,否則將隊(duì)首進(jìn)程調(diào)入執(zhí)行。(4)檢查該運(yùn)行進(jìn)程是否運(yùn)行完畢,若運(yùn)行完畢,將此進(jìn)程狀態(tài)改為完成,插入另一個(gè)完成進(jìn)程隊(duì)列;否則,將該進(jìn)程的優(yōu)先數(shù)減1,然后重新對(duì)它進(jìn)行排序,插入就緒隊(duì)列適當(dāng)位置后等待CPU。(5)重復(fù)步驟(3)、(4),直到就緒隊(duì)列為空。 算法描述:將每個(gè)進(jìn)程抽象成一個(gè)控制塊PCB, PCB用一個(gè)結(jié)構(gòu)體描述。構(gòu)建一
4、個(gè)進(jìn)程調(diào)度類。將進(jìn)程調(diào)度的各種算法分裝在一個(gè)類中。類中存在三個(gè)容器,一個(gè)保存正在或未進(jìn)入就緒隊(duì)列的進(jìn)程,一個(gè)保存就緒的進(jìn)程,另一個(gè)保存已完成的進(jìn)程。還有一個(gè)PCB實(shí)例。主要保存正在運(yùn)行的進(jìn)程。類中其他方法都是圍繞這三個(gè)容器可以這個(gè)運(yùn)行中的PCB展開(kāi)。主要用到的技術(shù)是STL中的vector以維護(hù)和保存進(jìn)程容器、就緒容器、完成容器。當(dāng)程序啟動(dòng)時(shí),用戶可以選擇不同的調(diào)度算法。然后用戶從控制臺(tái)輸入各個(gè)進(jìn)程的信息,這些信息保存到進(jìn)程容器中。進(jìn)程信息輸入完畢后,就開(kāi)始了進(jìn)程調(diào)度,每調(diào)度一次判斷就緒隊(duì)列是否為空,若為空則系統(tǒng)時(shí)間加一個(gè)時(shí)間片。判斷進(jìn)程容器中是否有新的進(jìn)程可以加入就緒隊(duì)列。函數(shù)描述: stru
5、ct proc /*定義結(jié)構(gòu)體內(nèi)部包含進(jìn)程的信息*/ char name5; /*定義進(jìn)程名*/ int num; /*定義運(yùn)行時(shí)間*/int pri; /*定義優(yōu)先權(quán)*/;Void main()/*主函數(shù):掌控整個(gè)程序的運(yùn)行過(guò)程,是程序的主體部分*/struct proc prn; /*聲明結(jié)構(gòu)體數(shù)組*/for(i=0;i<n;i+) /*for 函數(shù)定義輸入進(jìn)程數(shù)*/for(k=1;k<n;k+) /*for 函數(shù)判斷優(yōu)先權(quán)大小并進(jìn)行排序*/while(pr0.num!=0) /*while進(jìn)程運(yùn)行循環(huán)*/附實(shí)驗(yàn)代碼:#include<stdio.h>#includ
6、e<string>#define n 5struct proc /定義進(jìn)程結(jié)構(gòu)體 char name5; int num; int pri;void main()/主函數(shù) char ch; struct proc prn;/聲明結(jié)構(gòu)體數(shù)組 int i,k,j; int count=n; for(i=0;i<n;i+)/輸入5個(gè)進(jìn)程 printf("第%d個(gè)進(jìn)程:n",i+1); printf("名稱:"); scanf("%s",&); printf("運(yùn)行時(shí)間:"); s
7、canf("%d",&pri.num); printf("優(yōu)先級(jí):"); scanf("%d",&pri.pri); /按進(jìn)程優(yōu)先級(jí)大小排序 for(k=1;k<n;k+)for(j=0;j<n-1;j+) if(prj.pri<prj+1.pri) struct proc temp; temp=prj; prj=prj+1; prj+1=temp; while(pr0.num!=0)/進(jìn)程運(yùn)行循環(huán); ch=getchar(); pr0.pri=pr0.pri-1; pr0.num=pr0.num-1
8、; printf("此次執(zhí)行的進(jìn)程數(shù)據(jù)屬性:n"); printf("名稱-%s,執(zhí)行時(shí)間-%d,優(yōu)先權(quán)-%dn",,pr0.num,pr0.pri); if(pr0.num=0) printf("進(jìn)程%s結(jié)束!n",);count=count-1;printf("還有%d個(gè)進(jìn)程在等待執(zhí)行.n",count);for(i=0;i<count;i+)pri=pri+1;/排除掉運(yùn)行完的進(jìn)程 for(k=1;k<count;k+)/再排序for(j=0;j<count-1;j+) if(prj.pri<prj+1.pri) struct proc temp; temp=prj; prj=prj+1; prj+1=temp; 試驗(yàn)結(jié)果:1.執(zhí)行結(jié)果2.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國(guó)家級(jí)創(chuàng)新平臺(tái)財(cái)政資金股權(quán)投資委托管理合同3篇
- 二零二五年度新型住宅小區(qū)開(kāi)發(fā)商委托專業(yè)物業(yè)管理地下車庫(kù)服務(wù)合同3篇
- 二零二五年度LED燈具研發(fā)生產(chǎn)與安裝服務(wù)合同模板2篇
- 二零二五年度旅游度假村個(gè)人開(kāi)發(fā)承包合同示例3篇
- 二零二五年度國(guó)有企業(yè)員工持股計(jì)劃股權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年度影視作品角色形象使用權(quán)許可合同3篇
- 二零二五年度板材夾板加工定制專項(xiàng)合同2篇
- 海南醫(yī)學(xué)院《生物醫(yī)藥進(jìn)展專題1》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版鉆井平臺(tái)打井工程維護(hù)保養(yǎng)合同2篇
- 海南衛(wèi)生健康職業(yè)學(xué)院《網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- Unit 3 We should obey the rules. Lesson15(說(shuō)課稿)-2023-2024學(xué)年人教精通版英語(yǔ)五年級(jí)下冊(cè)
- 借條的正規(guī)模板(2024版)
- 建設(shè)工程監(jiān)理費(fèi)計(jì)算器(免費(fèi))
- 電子政務(wù)案例
- 合理化建議與管理創(chuàng)新獎(jiǎng)勵(lì)制
- 擠出機(jī)設(shè)備操作規(guī)程
- 洗胃操作流程及評(píng)分標(biāo)準(zhǔn)
- CRISPR基因編輯技術(shù)PPT課件
- 地下連續(xù)墻拆除方案
- 二年級(jí)上冊(cè)數(shù)學(xué)期中試卷
- 建材公司財(cái)務(wù)管理制度
評(píng)論
0/150
提交評(píng)論