版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、短 作 業(yè) 優(yōu) 先調(diào) 度 算 法學(xué) 院計算機科學(xué)與技術(shù)專業(yè)學(xué)號學(xué)生姓名指導(dǎo)教師姓名2014-3-18目錄1、 實驗題目2、 課程設(shè)計的目的3、 設(shè)計內(nèi)容bZ 設(shè)計要求5、 主要數(shù)據(jù)結(jié)才及其說明6、 程序運彳r結(jié)果7、 源程序文件8、 實驗體會9、 參考文獻 實驗題目采用短作業(yè)優(yōu)先算法的進程調(diào)度程序課程設(shè)計的目的操作系統(tǒng)課程設(shè)計是計算機專業(yè)重要的教學(xué)環(huán)節(jié),它為學(xué)生提供了一個既動手又動腦,將課本上的理論知識和實際有機的結(jié)合一起,獨立分析和解決實際問題的機會。進一步鞏固和復(fù)習(xí)操作系統(tǒng)的基礎(chǔ)知識。培養(yǎng)學(xué)生結(jié)構(gòu)化程序、模塊化程序設(shè)計的方法和能力。提高學(xué)生調(diào)試程序的技巧和軟件設(shè)計的能力。提高學(xué)生分析問題、
2、解決問題以及綜合利用 c語言進行程序設(shè)計的能力。設(shè)計內(nèi)容設(shè)計并實現(xiàn)一個采用短作業(yè)優(yōu)先算的進程調(diào)度算法演示程序設(shè)計要求1 .每一個進程有一個PCB,其內(nèi)容可以根據(jù)具體情況設(shè)定。2 .進程數(shù)、進入內(nèi)存時間、要求服務(wù)時間、優(yōu)先級等均可以在界面上設(shè)定3 .可讀取樣例數(shù)據(jù)(要求存放在外部文件中)進行進程數(shù)、進入內(nèi)存時間、時間片長度、 進程優(yōu)先級的初始化4 . 可以在運行中顯示各進程的狀態(tài):就緒、執(zhí)行 (由于不要求設(shè)置互斥資源與進程間 同步關(guān)系,故只有兩種狀態(tài)) 5. 具有一定的數(shù)據(jù)容錯性主要數(shù)據(jù)結(jié)構(gòu)及其說明算法的簡要說明:短作業(yè)(進程)優(yōu)先調(diào)度算法 SJ (P) F,是指對短作業(yè)或短進 程優(yōu)先調(diào)度的算法
3、。它們可以分別用于作業(yè)調(diào)度和進程調(diào)度。短作業(yè)優(yōu)先(SJF)的調(diào)度算法是從后備隊列中選擇一個或若干個估計運行時間最短的作業(yè), 將它們調(diào)入內(nèi)存運 行。而短進程(SPF)調(diào)度算法則是從就緒隊列中選出一個估計運行時間最短的進程, 將處理機分配給它, 使它立即執(zhí)行并一直執(zhí)行到完成, 或發(fā)生某事件而被阻塞放棄處理 機再重新調(diào)度。優(yōu)點是SJ(P)F調(diào)度算法能有效地降低作業(yè)(進程)的平均等待時間, 提高系統(tǒng)吞吐量。 缺點是該算法對長作業(yè)不利; 完全未考慮作業(yè)的緊迫程度, 因而不能 保證緊迫性作業(yè)(進程)長期不被調(diào)度;由于作業(yè)(進程)的長短只是根據(jù)用戶所提供 的估計執(zhí)行時間而定的, 而用戶又可能會有意或無意地縮
4、短其作業(yè)的估計運行時間, 致 使該算法不一定能真正做到短作業(yè)游戲那調(diào)度。該程序定義了一個進程數(shù)據(jù)塊(struct spf),該數(shù)據(jù)塊有進程名(name)、到達時間 (arrivetime)、服務(wù)時間(servicetime)、開始執(zhí)行時間(starttime)、完成時間 finishtime)、周 轉(zhuǎn)時間(zztime)、帶權(quán)周轉(zhuǎn)時間(dqzztime)。用到的公式有:完成時間=到達時間+服務(wù)時 間;周轉(zhuǎn)時間=完成時間-到達時間;帶權(quán)周轉(zhuǎn)時間=周轉(zhuǎn)時間/服務(wù)時間;(第一次執(zhí)行的進程的完成時間=該進程的到達時間;下一個進程的開始執(zhí)行時間=上一個進程的完成時間)。運行進程的順序需要對進程的到達時間
5、和服務(wù)時間進行比較。如果某一進程是從 0 時刻到達的, 那么首先執(zhí)行該進程; 之后就比較進程的服務(wù)時間, 誰的服務(wù)時間 短就先執(zhí)行誰 (如果服務(wù)時間相同則看它們的到達時間,到達時間短的先執(zhí)行);如果 到達時間和服務(wù)時間相同,則按先來先服務(wù)算法執(zhí)行。 程序運行結(jié)果1 進入操作界面如下2 輸入進程的數(shù)目3 輸入進程的信息4 運行順序流程圖源程序文件#include<stdio.h>#include<conio.h>#include<windows.h>#define MAX 100/最多能管理的作業(yè)數(shù)目struct jcb /作業(yè)控制塊 JCB定義為結(jié)構(gòu)體cha
6、r name10;/ 作業(yè)名float arrivetime; / 作業(yè)到達時間float servicetime;/ 作業(yè)服務(wù)時間float starttime; / 作業(yè)開始執(zhí)行時間float finishtime; / 作業(yè)完成時間float zztime;/ 作業(yè)周轉(zhuǎn)時間float avezztime;/ 作業(yè)平均周轉(zhuǎn)時間;jcb aMAX;void input(jcb *p,int N)int i;printf("請分別輸入:nt作業(yè)名,到達時間,服務(wù)時間(如:JOB1 5 10)nn");for(i=0;i<=N-1;i+)printf(" 請輸
7、入第 %d 個作業(yè)信息:",i+1);scanf("%s%f%f",&,&pi.arrivetime,&pi.servicetime);printf("n");void Print(jcb *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float avezztime,int N)int k;printf(" 調(diào)度順序 :");printf("%s"
8、,);for(k=1;k<N;k+) printf("->%s",);printf("nn");printf("ttt 作業(yè)信息 :n");printf("nnametarrivetservicetstarttfinishtzztavezzn");for(k=0;k<=N-1;k+)printf("%st%-.2ft%-.2ft%-.2ft%-.2ft%-.2ft%-.2ftn",,pk.arrivetime,pk.servicetim
9、e,pk.sta rttime,pk.finishtime,pk.zztime,pk.avezztime);void sort(jcb *p,int N)for(int i=0;i<=N-1;i+)for(int j=0;j<=i;j+)if(pi.arrivetime<pj.arrivetime)jcb temp;temp=pi;pi=pj;pj=temp;void deal(jcb *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float
10、&avezztime,int N)int k;for(k=0;k<=N-1;k+)if(k=0)pk.starttime=pk.arrivetime;pk.finishtime=pk.arrivetime+pk.servicetime;elsepk.starttime=pk-1.finishtime;pk.finishtime=pk-1.finishtime+pk.servicetime;for(k=0;k<=N-1;k+)pk.zztime=pk.finishtime-pk.arrivetime;pk.avezztime=pk.zztime/pk.servicetime;
11、void jcbf(jcb *p,int N)float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,avezztime=0; sort(p,N);for(int m=0;m<N-1;m+)if(m=0)pm.finishtime=pm.arrivetime+pm.servicetime;elsepm.finishtime=pm-1.finishtime+pm.servicetime;int i=0;for(int n=m+1;n<=N-1;n+)if(pn.arrivetime<=pm.finis
12、htime) i+;float min=pm+1.servicetime;int next=m+1;/m+1=nfor(int k=m+1;k<m+i;k+)if(pk+1.servicetime<min)min=pk+1.servicetime;next=k+1;jcb temp;temp=pm+1;pm+1=pnext;pnext=temp;deal(p,arrivetime,servicetime,starttime,finishtime,zztime,avezztime,N);Print(p,arrivetime,servicetime,starttime,finishti
13、me,zztime,avezztime,N); int main() while(1)system("CLS");int N;printf("ttt* 短作業(yè)優(yōu)先調(diào)度算法*n");printf(" 請輸入作業(yè)數(shù)目 :");scanf("%d",&N);char ch;if(N>MAX)printf("t! 輸入的作業(yè)數(shù)目太大,請輸入不大于%d 的整數(shù) n",MAX);printf(" 按 Q 或者 q 退出程序,按其他任意鍵繼續(xù)測試.");ch = getch(
14、);if(ch='Q'|ch='q')break;else continue;input(a,N);jcb *b=a;jcbf(b,N);printf("按Q或者q退出程序,按其他任意鍵繼續(xù)測試)ch = getch();if(ch='Q'|ch='q')break;return 0;體會心得每一次課程設(shè)計度讓我學(xué)到了在平時課堂不可能學(xué)到的東西。 所以我對每一次課程設(shè)計的機會都非常珍惜。 不一定我的課程設(shè)計能夠完成得有多么完美, 但是我總是很投入的去研究去學(xué)習(xí)。整個課程設(shè)計下來, 我瀏覽的相關(guān)網(wǎng)頁已經(jīng)超過了 100 個(不完全統(tǒng)計)。 當(dāng)然網(wǎng)上的東西很亂很雜, 自己要能夠?qū)W會篩選。 不能決定對或錯的, 有個很簡單的方法就是去嘗試。同學(xué)間的討論, 這是很重要的。 老師畢竟比較忙。 對于課程設(shè)計最大的討論伴侶應(yīng)該是同學(xué)了。大家都在研究同樣的問題,討論起來,更能夠把思路理清楚,相互幫助,可以大大提高效率。最好在做課設(shè)的過程中能夠有記錄的習(xí)慣, 這樣在寫實驗報告時能夠比較完整的回憶起中間遇到的各種問題。對于本次課設(shè)的題目,SJF算法以進入系統(tǒng)的作業(yè)所要求的CPU寸間為標(biāo)準(zhǔ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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年裝修工程承包協(xié)議版B版
- 珠海手動報警按鈕施工方案
- 2024年餐飲服務(wù)行業(yè)標(biāo)準(zhǔn)勞務(wù)派遣合同樣本版B版
- 農(nóng)場水地暖施工合同
- 機電安裝時間合同
- 國際旅游度假區(qū)隔墻施工合同
- 污水處理工程投資合同
- 2025年邯鄲貨運從業(yè)資格證考試題及答案
- 船舶裝卸貨物個人鏟車租賃合同
- 2024年設(shè)備安裝與維護合同3篇
- 2024年中國陶瓷碗盆市場調(diào)查研究報告
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之22:“8運行-8.1運行策劃和控制”(雷澤佳編制-2025B0)
- 2024-2030年中國硅肥行業(yè)規(guī)模分析及投資前景研究報告
- 電網(wǎng)行業(yè)工作匯報模板22
- 2024年度跨境電商平臺承包經(jīng)營合同3篇
- 2025年上半年人民日報社招聘應(yīng)屆高校畢業(yè)生85人筆試重點基礎(chǔ)提升(共500題)附帶答案詳解
- 神經(jīng)外科基礎(chǔ)護理課件
- 山東省臨沂市2023-2024學(xué)年高二上學(xué)期期末考試生物試題 含答案
- 2024-2025學(xué)年一年級數(shù)學(xué)上冊期末樂考非紙筆測試題(二 )(蘇教版2024秋)
- 辦公樓電氣改造施工方案
- 內(nèi)蒙古赤峰市2023-2024學(xué)年高一上學(xué)期期末考試物理試題(含答案)
評論
0/150
提交評論