


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)學(xué)院名稱:專業(yè)班級(jí):姓 名:學(xué) 號(hào):2013年1月1日評(píng)分標(biāo)準(zhǔn)優(yōu)秀:有完整的符合標(biāo)準(zhǔn)的文檔,文檔有條理、文筆通順,格式正確,程序完 全實(shí)現(xiàn)設(shè)計(jì)要求,獨(dú)立完成;良好:有完整的符合標(biāo)準(zhǔn)的文檔,文檔有條理、文筆通順,格式正確;程序完 全實(shí)現(xiàn)設(shè)計(jì)要求,獨(dú)立完成,但存在少量錯(cuò)誤;中等:有完整的符合標(biāo)準(zhǔn)的文檔,有基本實(shí)現(xiàn)設(shè)計(jì)方案的軟件,設(shè)計(jì)方案正確;及格:有完整的符合標(biāo)準(zhǔn)的文檔,有基本實(shí)現(xiàn)設(shè)計(jì)方案的軟件,設(shè)計(jì)方案基本 正確;不及格:沒(méi)有完整的符合標(biāo)準(zhǔn)的文檔,軟件沒(méi)有基本實(shí)現(xiàn)設(shè)計(jì)方案,設(shè)計(jì)方案 不正確。沒(méi)有獨(dú)立完成,抄襲或雷同。成績(jī)?cè)u(píng)定為:。指導(dǎo)教師:年 月 日目錄一進(jìn)程調(diào)度算法4-2
2、3 頁(yè)二銀行家算法24-34 頁(yè)三磁盤(pán)調(diào)度算法35-46 頁(yè)進(jìn)程調(diào)度算法1設(shè)計(jì)目的在多道程序設(shè)計(jì)中,經(jīng)常是若干個(gè)進(jìn)程同時(shí)處于就緒狀態(tài),必須依照某種策 略決定哪個(gè)進(jìn)程優(yōu)先占有處理機(jī),因而必須解決進(jìn)程調(diào)度的問(wèn)題,進(jìn)程調(diào)度 算法就是要解決進(jìn)程調(diào)度的問(wèn)題。2. 任務(wù)及要求2.1 設(shè)計(jì)任務(wù)設(shè)計(jì)程序來(lái)模擬進(jìn)程的四種調(diào)度算法,模擬實(shí)現(xiàn)調(diào)度的基本功能。2.2 設(shè)計(jì)要求產(chǎn)生的各種隨機(jī)數(shù)要加以限制,如 alltime 限制在 40 以內(nèi)的整數(shù)。 進(jìn)程的數(shù)量 n 不能取值過(guò)大。3. 算法及數(shù)據(jù)結(jié)構(gòu)3.1 算法的總體思想(流程)每個(gè)用來(lái)標(biāo)識(shí)進(jìn)程的進(jìn)程控制塊 PCB 用結(jié)構(gòu)來(lái)描述,包括以下字段:(1) 進(jìn)程優(yōu)先數(shù)ID,
3、其中0為閑逛進(jìn)程,用戶進(jìn)程的標(biāo)識(shí)數(shù)為1,2, 3'(2) 進(jìn)程優(yōu)先級(jí)Priority,閑逛進(jìn)程(idle)的優(yōu)先級(jí)為0,用戶進(jìn)程的優(yōu)先級(jí)大于 0,且隨機(jī)產(chǎn)生,優(yōu)先數(shù)越大,優(yōu)先級(jí)越高。(3) 進(jìn)程占用的CPU時(shí)間CPUtime,進(jìn)程每運(yùn)行一次,累計(jì)值等于 4。( 4)進(jìn)程總共需要運(yùn)行時(shí)間 Alltime ,利用隨機(jī)函數(shù)產(chǎn)生。( 5)進(jìn)程狀態(tài), 0:就緒態(tài); 1 :運(yùn)行態(tài); 2:阻塞態(tài)。利用鏈表將數(shù)據(jù)連接起來(lái),實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)。3.2 鏈表模塊3.2.1 功能 實(shí)現(xiàn)鏈表的存儲(chǔ)功能,以及實(shí)現(xiàn)存儲(chǔ)的查找功能。3.2.2 數(shù)據(jù)結(jié)構(gòu)度。構(gòu)造鏈表這個(gè)數(shù)據(jù)結(jié)構(gòu),以及鏈表的初始化,鏈表的插入,鏈表的長(zhǎng)3.
4、2.3 算法typedef structElemType *elem;intlength;intlistsize;SqList;Status InitList(SqList &l)l.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!l.elem) exit(OVERFLOW);l.length=0;l.listsize=LIST_INIT_SIZE;return OK;int ListLength(SqList l)return(l.length);Status ListInsert_Sq(SqList &L
5、,int i, ElemType e)/ 在順序表 L 的第 i 個(gè)位置前插入元素 e,i 的合法值為 1.L.length+1if(i<1|i>L.length+1)return ERROR;if(L.length>=L.listsize)ElemType*newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase) exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;ElemType *q=&
6、amp;L.elemi-1, *p=&L.elemL.length-1;while(p>=q)*(p+1)=*p; -p; / 插入位置后的元素右移*q=e;+L.length;return OK;Status GetElem(SqList L,int i,ElemType &e)if(i<=0|i>L.length)return ERROR;elsee=*(L.elem+i-1);return OK;void Outputlist(SqList &L)if(0=L.length)printf(" 空集 !");elsefor(in
7、t i=0;i<L.length;+i) printf("%c",*(L.elem+i);3.3 主函數(shù)模塊3.3.1 功能 實(shí)現(xiàn)進(jìn)程調(diào)度的四種算法,以及人機(jī)交互的菜單。3.3.2 數(shù)據(jù)結(jié)構(gòu) 主要包括五個(gè)部分,分別是四種算法,和進(jìn)程的輸入和菜單部分,功 能分別實(shí)現(xiàn)。3.3.3 算法void main() for(1;) int number;PCB pcb100 ; srand(time(0); int max;int ppp100;int time=0;int time1;int m;int a100;a0=0;printf("n*進(jìn)程調(diào)度算法的模擬*n&
8、quot;);printf("*1.先到先服務(wù)調(diào)度2.最短作業(yè)優(yōu)先調(diào)度*n");printf("*3.優(yōu)先權(quán)調(diào)度4.輪轉(zhuǎn)發(fā)調(diào)度*n");printf("f*");printf("n 請(qǐng)選擇調(diào)度的方法 : ");scanf("%d",&m);if(m!=1&&m!=2&&m!=3&&m!=4)printf(" 輸入錯(cuò)誤 ! 重新輸入 : ");scanf("%d",&m);if(m!=1&
9、;&m!=2&&m!=3&&m!=4)printf(" 輸入錯(cuò)誤 ! 重新輸入 : ");scanf("%d",&m);if(m!=1&&m!=2&&m!=3&&m!=4)printf("輸入錯(cuò)誤!重新輸入:");scanf("%d",&m);if(m!=1&&m!=2&&m!=3&&m!=4)printf(" 輸入錯(cuò)誤 ! 重新輸入 : ");
10、scanf("%d",&m);printf(" 請(qǐng)輸入進(jìn)程的個(gè)數(shù) :");scanf("%d",&number);printf("n 開(kāi)始時(shí)用戶進(jìn)程均為就緒狀態(tài) ,運(yùn)行時(shí)間隨機(jī)產(chǎn)生 nn");SqList sq;InitList(sq);for(int r=0;r<number;r+)pcbr.CPUtime=0;pcbi.Priority=rand()%50;while(1)if(pcbi.Priority<20)pcbi.Priority=rand()%50;elsebreak;pc
11、bi.Alltime=rand()%40;while(1)if(pcbi.Alltime<10)pcbi.Alltime=rand()%40;elsebreak;for(int j=0;j<number;j+)ListLength(sq);ListInsert_Sq(sq,ListLength(sq),pcbi );if(m=1)*n");printf("n*int coun=0; int wait100; wait0=0; int Allwait=0;程序演示開(kāi)始/計(jì)數(shù)變量/等待時(shí)間數(shù)組for(int i1=0;i1<number;i1+) printf
12、(" 下面開(kāi)始調(diào)用第 %d 個(gè)進(jìn)程; n",i1);printf(" 開(kāi) 始 時(shí) 間 為 %d 執(zhí) 行 時(shí) 間為 dn",co un ,pcbi1.AIItime);coun+=pcbi1.Alltime;if(i1!=0)waiti1=pcbi1-1.AIItime+waiti1-1;Allwait=waiti2+Allwait;printf(" 平均等待時(shí)間為 :%dn",Allwait/number);if(m=2)int min=pcb0.Alltime;int wait1100;wait10=0;int in=0;int c
13、oun1=0;*printf("*n");f*最短作業(yè)優(yōu)先調(diào)cout<<" 進(jìn)程所需時(shí)間分別是 :"<<endl;for(i=0;i<number;i+)cout<<pcbi.Alltime<<endl;printf(" 進(jìn)程調(diào)度的順序?yàn)?: ");for(i=0;i<number;i+)min=50;for(j=0;j<number;j+)if(pcbj.Alltime<min)min=pcbj.Alltime;in=j;printf("%d &quo
14、t;,in+1);pcbin.Alltime+=50;if(m=3)printf("ID 優(yōu)先級(jí) 運(yùn)行總時(shí)間 進(jìn)程狀態(tài) n");for(int k=0; k<number; k+)%d就緒printf("%d %dn",k+1, pcbk.Priority, pcbk.Alltime);*printf("n*程序調(diào)度演示開(kāi)始*n");int count=0,count1=0;for(int i=0;i<number;i+)pppi=pcbi.Priority;if(pcbi.Alltime!=0)count1+;count1-;time=time+count1*4; max=Max(ppp,number);if(pcbmax.Alltime=0)pppmax=-1;pcbmax.Priority=-1; max=Max(ppp,number);pcbmax.Priority-=4; pcbmax.Alltime-=4; pcbmax.CPUtime+=4; if(pcbmax.Alltime<=0)pcbmax.Alltime=0;for(int w=0;w<number;w+)if(pcbw.Alltime=0)pppw=-1;pcbw.Priority=-1;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級(jí)下冊(cè)語(yǔ)文教學(xué)計(jì)劃
- 聘請(qǐng)英語(yǔ) 顧問(wèn)合同范本
- 2 鄉(xiāng)下人家(教學(xué)設(shè)計(jì))2023-2024學(xué)年部編版語(yǔ)文四年級(jí)下冊(cè)
- 14 《母雞》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版四年級(jí)語(yǔ)文下冊(cè)
- 施工洽商合同范本
- 工資社保合同范本
- 土方清理施工合同范文
- 19《夜宿山寺》教學(xué)設(shè)計(jì)-2024-2025學(xué)年二年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版(五四制)
- 祠堂建造合同范本
- Module 3 Unit 2 Around my home(教學(xué)設(shè)計(jì))-2024-2025學(xué)年牛津上海版(試用本)英語(yǔ)四年級(jí)上冊(cè)
- 《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》解讀-知識(shí)培訓(xùn)
- 《加油站安全管理培訓(xùn)課件》
- 《生態(tài)安全》課件
- 1.北京的春節(jié) 練習(xí)題(含答案)
- 抗震支架安裝工程施工方案范文
- GB/T 45071-2024自然保護(hù)地分類分級(jí)
- 農(nóng)業(yè)托管合同范例
- 食品中阿維菌素等55種農(nóng)藥最大殘留限量
- 保潔部消殺培訓(xùn)
- 口服輪狀疫苗知識(shí)課件
- 中國(guó)腦小血管病診治指南2023版
評(píng)論
0/150
提交評(píng)論