版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)實驗報告第一次實驗——時間片調(diào)度輪轉(zhuǎn)算法實驗時間:2014.11.7院系:計算機科學(xué)與技術(shù)學(xué)院班級:軟件2班實驗要求:實驗選題:時間片調(diào)度輪轉(zhuǎn)算法程序流程圖及程序代碼開始流程圖開始確定時間片大小確定時間片大小就緒隊列為空 空則等待就緒隊列為空 進行下一 否選擇隊首進程進行執(zhí)行一個時間片次選擇隊首進程進行執(zhí)行一個時間片執(zhí)行該進程運行完成 該進程運行完成 否 送到就緒隊列末尾送到就緒隊列末尾 是 程序代碼:#include<stdio.h>#include<conio.h>#defineN20typedefstructpcb{ charpname[N]; intruntime; intarrivetime; charstate; structpcb*next;}PCB;PCBhead_input;PCBhead_run;PCB*pcb_input;staticcharR='r',C='c';unsignedlongcurrent;voidinputprocess();intreadyprocess();intreadydata();intrunprocess();FILE*f;intreadyprocess(){ while(1) { if(readydata()==0) return1; else runprocess(); }}intreadydata(){ if(head_input.next==NULL) { if(head_run.next==NULL) return0; else return1; } PCB*p1,*p2,*p3; p1=head_run.next; p2=&head_run; while(p1!=NULL) { p2=p1; p1=p2->next; } p1=p2; p3=head_input.next; p2=&head_input; while(p3!=NULL) { if(((unsignedlong)p3->arrivetime<=current)&&(p3->state==R)) { printf("時間片為%8d(時間%4d);進程%s開始,\n",current,(current+500)/1000,p3->pname); fprintf(f,"時間片為%8d(時間%4d);進程%s開始,\n",current,(current+500)/1000,p3->pname); p2->next=p3->next; p3->next=p1->next; p1->next=p3; p3=p2; } p3=p3; p3=p3->next; } return1;}intrunprocess(){ PCB*p1,*p2; if(head_run.next==NULL) { current++; return1; } else { p1=head_run.next; p2=&head_run; while(p1!=NULL) { p1->runtime--; current++; if(p1->runtime<=0) { printf("時間片為%8d時間%4d進程%s結(jié)束.\n",current,(current+500)/1000,p1->pname); fprintf(f,"時間片為%8d時間%4d進程%s結(jié)束.\n",current,(current+500)/1000,p1->pname); p1->state=C; p2->next=p1->next; deletep1; p1=NULL; } else { p2=p1; p1=p2->next; } } return1; }}voidinputprocess(){ PCB*p1,*p2; intnum; unsignedlongmax=0; printf("請輸入進程的數(shù)量:"); fprintf(f,"請輸入進程的數(shù)量:"); scanf("%d",&num); fprintf(f,"%d\n",&num); p1=&head_input; p2=p1; p1->next=newPCB; p1=p1->next; for(inti=0;i<num;i++) { printf("請輸入第%d個進程的進程名:",i+1); fprintf(f,"請輸入第%d個進程的進程名:",i+1); scanf("%s",p1->pname); fprintf(f,"%s\n",p1->pname); printf("它的運行時間為:"); fprintf(f,"它的運行時間為:"); scanf("%d",&(p1->runtime)); fprintf(f,"%d\n",&(p1->runtime)); printf("它的到達時間為:"); fprintf(f,"它的到達時間為:"); scanf("%d",&(p1->arrivetime)); fprintf(f,"%d\n",&(p1->arrivetime)); p1->runtime=(p1->runtime)*1000; p1->arrivetime=(p1->arrivetime)*1000; p1->state=R; if((unsignedlong)(p1->arrivetime)>max) max=p1->arrivetime; p1->next=newPCB; p2=p1; p1=p1->next; } deletep1; p1=NULL; p2->next=NULL;}voidmain(){ f=fopen("result.txt","w"); printf("時間1=1000時間片\n"); fprintf(f,"\ntime1=1000timeslice\n"); current=0; inputprocess(); readyprocess(); getch(); fclose(f);}PCB數(shù)據(jù)結(jié)構(gòu)typedefstructpcb{ charpname[
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度智能家居系統(tǒng)安裝合同
- 2024年食堂餐飲品牌代理合同3篇
- 福建省南平市五夫中學(xué)高三物理月考試卷含解析
- 11 變廢為寶有妙招 ( 說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治四年級上冊
- 2024年電腦硬件及軟件購買合同
- 領(lǐng)跑未來家居設(shè)計
- 科學(xué)知識解密
- 外包保潔合同(2篇)
- 揭秘農(nóng)業(yè)生態(tài)系統(tǒng)
- 2024年虛擬現(xiàn)實技術(shù)研發(fā)與應(yīng)用委托合同
- 神經(jīng)根壓迫癥的護理查房
- LS/T 1234-2023植物油儲存品質(zhì)判定規(guī)則
- 部編版五年級語文上冊期末 小古文閱讀 試卷附答案
- 煙花爆竹火災(zāi)事故的處置措施
- 收費站春運保通保暢工作方案
- 江蘇南京鼓樓區(qū)2023-2024九年級上學(xué)期期末語文試卷及答案
- 醫(yī)療試劑服務(wù)方案
- 倉儲部經(jīng)理工作計劃
- 自然基金-國家重大科研儀器研制項目-申請書模板
- 膿毒血癥治療指南課件
- Linux操作系統(tǒng)實用教程-統(tǒng)信UOS 課件 第1章 國產(chǎn)操作系統(tǒng)基礎(chǔ)
評論
0/150
提交評論