版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
操作系統(tǒng)實驗報告第一次實驗——時間片調(diào)度輪轉(zhuǎn)算法實驗時間:2014.11.7院系:計算機科學與技術學院班級:軟件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結束.\n",current,(current+500)/1000,p1->pname); fprintf(f,"時間片為%8d時間%4d進程%s結束.\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ù)結構typedefstructpcb{ charpname[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年氣體分離及液化設備項目申請報告模板
- 2025年壓縮式垃圾車項目提案報告范文
- 企業(yè)員工辭職信范文(15篇)
- 2024年未實繳出資股權投資退出與轉(zhuǎn)讓服務合同3篇
- 2025年抗蛇毒血清項目提案報告模范
- 2025年柔性樹脂版項目申請報告模式
- 教師綜合培訓的心得體會5篇
- 我的大學生活演講稿
- 我的未來不是夢演講稿(15篇)
- 學校學生實習自我鑒定(集合5篇)
- 江蘇省連云港灌南縣2023-2024學年七年級上學期期末考試語文試題
- 幕墻維護與保養(yǎng)技術
- 30題工程造價崗位常見面試問題含HR問題考察點及參考回答
- 部編人教版《道德與法治》四年級上冊第11課《變廢為寶有妙招》說課課件(第1課時)
- 年產(chǎn)40萬噸灰底涂布白板紙造紙車間備料及涂布工段初步設計
- “全民健身”體育與健康知識考試題庫(供參考)
- 三年級語文學情全面分析
- 評審專家個人評審意見表
- 【語文】江蘇省蘇州市實驗小學小學三年級上冊期末試題(含答案)
- MOOC創(chuàng)新創(chuàng)業(yè)與管理基礎(東南大學)
- 醫(yī)療器械經(jīng)營質(zhì)量管理制度匯編
評論
0/150
提交評論