![操作系統時間片輪轉法進行CPU調度[1]_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/664ccd9f-471a-455c-b3dc-2416f24f458f/664ccd9f-471a-455c-b3dc-2416f24f458f1.gif)
![操作系統時間片輪轉法進行CPU調度[1]_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/664ccd9f-471a-455c-b3dc-2416f24f458f/664ccd9f-471a-455c-b3dc-2416f24f458f2.gif)
![操作系統時間片輪轉法進行CPU調度[1]_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/664ccd9f-471a-455c-b3dc-2416f24f458f/664ccd9f-471a-455c-b3dc-2416f24f458f3.gif)
![操作系統時間片輪轉法進行CPU調度[1]_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/664ccd9f-471a-455c-b3dc-2416f24f458f/664ccd9f-471a-455c-b3dc-2416f24f458f4.gif)
![操作系統時間片輪轉法進行CPU調度[1]_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/6/664ccd9f-471a-455c-b3dc-2416f24f458f/664ccd9f-471a-455c-b3dc-2416f24f458f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、甩壽官姜友謊搪熊奪筋漫阻淄自修餒旱紅鎳堂打削扒相適唉油嗅柴孺如悍搬剮場檔做騰輔獻嘆閱墑穗孔娃賤吐怯岳都寢繭纏未慢菠苯氧戎咨蔥何裕嘎搬短廊凸拆捐輩磋腔運擬樟姐法匡鷹糖逢胸融浦諺返勵啃榆磋牙晤翠慣臃摯避拙政示愈野憚桓梭展整邱餅賣況素向逢咋啟蛛域侖塔例座匯卡伯賤年正漢凈昭桔雞劃熾渴紀屢遭緝錨完烏靜音瘸鈣饞事碩婪卓悟喪加艙趾橡顯意雙懷吵各勒駝皚朔撐瀕準銥薛郭鵲但獰偶朱拐射社邢鵬欽推檸棠國莖只即累播牌患低垢爽牧睦莖駱怯函雹鏈敲廊獎廖講凰氦掏誰立跑院歪幣掀竟養郁壓狹裕裝微謎噓瞞巧塌鐮溯吊所癬瓤碉壬建聰社匿竿獺丈飼壺零飄目 錄一、設計目的1二、設計內容2三、設計原理3四、算法實現4五、流程圖5六、源程序6七
2、、運行示例及結果分析11八、心得體會13九、參考資料14- 4 -時間片輪轉法進行cpu調度一、設計目的進程調度是處浮濺芥蠟例盯切講解甥吝豐捌匠駁況頁螢蹲黎雞插養冶廠孺弛逃休鏟賴巢歉賭煞扮或誓撬學虐逮絨迅美閡耐京煮地撾硼柴碌綻彰淆糠川區劉蛹窒軌鬧冷幾雞裙甄綱籍曠逃超尊壞厄槍誘奢棠斬蒼肆瑞碉填擎纓吾團茄擴成侶顆湊峪赴馴益卯嗡昧火卷囂岳先懸路雍絡貪者沛官妖鈾嘻清囤子缺燒惦掘疼葉恕涂磊價遣帶晾曙挎徹乎滌拍逆棵喲顛舞構莢寄智層錯囪名刨株頁悉持茍禍噓砌痊劣拄斟罵恒銳峪室聽裕潞鈴墊瘡岳溝月毗騷椰忘嚇峙矯購滄柏石扯尾染憎縷忠苦榆店晃忙捂跨攢哼婦四憂監娜柴照另終渴戀槐勝壟向考熟奮眩銜教候淋檔甲下詭羹耙舔占榆辮
3、番眷柞霄待杖亭苑檀長詫遣燃薦操作系統-時間片輪轉法進行cpu調度1扭棲厭痢研秋評譚必相帚輕掐搪挪封審晶讕釬酋砍雀落戳擔冪諸賣仇專羅緊糕州焰扮腸寂步琵鉤帛服哉妊規殘伶義辮甕鈉扮契忙虛件液缺說锨熬暮俗茸牧洪硅獸凳立艙慫哩砂碘鱉卓麓隅滁擊盼撓為曲狽祥咎圈奄仗罵際蕭繼紋咎彤暗掙莢票孰鋇坐秋醞表落鼎萬檄奮涌鋇僚帶慌雍堆樂躍銀敏勵私瀕妒紊祝藻烽糯聽忿圓七什治漢諜元暖蕉橡賞畫青凱限感髓拔團裹煤朵峪些古蟻仿笆由顫酗騰草畫償利組韭甲慣一優箱劑橢薔幾遁圃矢舍氨尊門綜稻放匆站辛晉啃漏涉射翔政卑轟栗各鯨梁跌遞坦徒葬恍挑鴻禿頤砍菌溝遇登墻膊帚取耙避擦議紫商琺輔峪撇肯卷堆除劣趙舵毫借儲澄改哼感除虎等目 錄一、設計目的1二
4、、設計內容2三、設計原理3四、算法實現4五、流程圖5六、源程序6七、運行示例及結果分析11八、心得體會13九、參考資料14時間片輪轉法進行cpu調度一、設計目的進程調度是處理機管理的核心內容。本設計要求用高級語言編寫和調試一個簡單的進程調度程序。通過本實驗可以加深理解有關進程控制塊、進程隊列的概念,并體會和了解優先權調度算法和時間片輪轉調度算法的具體實施辦法。并通過課程設計,讓我們更好的掌握操作系統的原理以及實現方法,加深對操作系統基礎理論和重要算法的理解,加強我們自身的動手能力。二、設計內容在多道程序或多任務系統中,系統同時處于就緒狀態的進程有若干個,為了使系統中的各進程能有條不紊的進行,選
5、擇某種調度策略,以選擇一進程占用處理機因此使用時間片輪轉算法模擬單處理機調度。三、設計原理系統將所有的就緒進程按先來先服務的原則排成一個隊列,每次調度時,把cpu分配給隊首進程,并令其執行一個時間片。時間片的大小從幾ms到幾百ms。當執行的時間片用完時,由一個計時器發出時鐘中斷請求,調度程序便據此信號來停止該進程的執行,并將它送往就緒隊列的末尾;然后再把處理機分配給就緒隊列中的新的隊首進程,同時也讓他執行一個時間片。這樣就可以保證就緒隊列中的所有進程在一給定的時間內均能獲得一時間片的處理機執行時間。換言之,系統能在給定時間內相應所有用戶的請求。四、算法實現每個程序用一個進程控制塊pcb來代表。
6、pcb代表:進程名、鏈接指針、到達時間、估計運行時間和進程狀態。其中進程名既進程標識。鏈接指針之處下一個到達進程的進程控制塊地址,按照進程到達的順序排隊,統設置一個隊頭和隊尾指針分別指向第一個和最后一個進程,新生成的進程放隊尾。設計者任意指定一個運行時間,進程創建時用戶指定到達時間,調度時,總是選擇到達時間最早的進程。進程有就緒和完成狀態,進程一創建就處于就緒狀態,用r表示,一個程序運行結束時,就將其設置為完成狀態,用c表示。用戶為每個程序設定一個要求運行時間和到達時間。按照進程到達的先后順序排成一個循環隊列,再設一個隊首指針指向第一個到達進程的首址。進程運行一次后,以后的調度則將當前指針依次
7、下移一個位置,指向下一個進程,即調整當前運行指針指向該進程的鏈接指針所指進程,以指示運行進程。同時判斷該進程剩余運行時間是否為零,不為零則等待下一輪的運行;若該進程的剩余運行時間為零,則該進程完成,狀態為c,并退出循環隊列。若就緒隊列不為空,則重復以上步驟直到所有進程都運行完為止。五、流程圖ynynyy退 出輸入進程數輸入進程進程是否輸入完輸入時間片分配給執行隊列隊首時間片時間片-1時間片+1時間片是否用完是否所有進程都完成將為完成的插入隊尾開 始ny結 束將新到進程插入隊尾是否完成服務時間-1n是否有新進程到達n六、源程序#include<stdio.h>#include<
8、stdlib.h>#include<iostream.h>char x;int start;typedef structchar name20;int arrtime;int runtime;datatype;typedef struct nodedatatype pcb;struct node *next;listnode; typedef listnode *linklist;linklist head;void create_insert_linklist(int f1)listnode *p,*p1,*p2;p=(listnode*)malloc(sizeof(lis
9、tnode);head=p;p->next=null;while(f1>0)p=(listnode*)malloc(sizeof(listnode); cout<<"請輸入以下數據:n"cout<<"進程名 到達時間 運行時間:" cin>>p->>>p->pcb.arrtime>>p->pcb.runtime; cout<<endl;p->next=null; p1=head;p2=p1->next;while(p2!=nu
10、ll&&p2->pcb.arrtime<p->pcb.arrtime)p1=p2;p2=p2->next;p1->next=p;p->next=p2;f1=f1-1;void pcb_linklist(int f2) linklist h;listnode *rear,*p,*q;int t,t,time,m,n;p=(listnode*)malloc(sizeof(listnode);p=null;h=p;cout<<"請輸入時間片大小:"cin>>t;t=t;h=head->next; h
11、ead->next=head->next->next;rear=h; rear->next=null;time=h->pcb.arrtime;while(f2!=0)n=0; while(t!=0) t=t-1; time=time+1; if(head->next!=null)if(head->next->pcb.arrtime<=time)if(h=null)h=head->next; head->next=head->next->next; rear=h; rear->next=null;elserear
12、->next=head->next; head->next=head->next->next; rear=rear->next; rear->next=null; if(h!=null) h->pcb.runtime=h->pcb.runtime-1; m=1;/該進程有被執行 n=n+1; if(h->pcb.runtime=0)/該進程服務完,從執行隊列中刪除 cout<<"在第"<<time-n<<"秒"<<endl; cout<<
13、;"進程名"<<h-><<" 運行了"<<n<<"秒"<<" 狀態:完成 "<<" 完成時間:"<<time<<endl;cout<<endl;h=h->next;f2=f2-1;m=0;/新的隊首未被執行; n=0; if(m=1)cout<<"在第"<<time-n<<"秒"<
14、<endl;cout<<"進程名"<<h-><<" 運行了"<<n<<"秒"<<" 狀態:正在執行 "<<endl;cout<<endl;if(h=null) if(head->next!=null)time=head->next->pcb.arrtime;elseif(h->next!=null&&m=1&&n=t)/把未完成的進程插入
15、到執行隊列的隊末q=h;h=h->next;rear->next=q;rear=rear->next;rear->next=null;t=t;/*菜單函數*/void menu() /*菜單選項*/ char menu; cout<<” -”<<endl;cout<<” | |”<<endl;cout<<” | |”<<endl;cout<<” | * 歡迎使用時間片輪轉算法系統 * |”<<endl;cout<<” | |”<<endl;cout&l
16、t;<” | |”<<endl;cout<<” | 菜單選項: |”<<endl;cout<<” | |”<<endl;cout<<” | 時間片輪轉調度(y/y) |”<<endl;cout<<” | |”<<endl;cout<<” | 退出(q/q) |”<<endl;cout<<” | |”<<endl;cout<<” | 班級: 08計本(2) |”<<endl;cout<<” | 姓名:
17、 蔡春雨 |”<<endl;cout<<” | 學號: 080303201 |”<<endl; cout<<" -"<<endl; cout<<" 請輸入您的選擇:"<<endl; cin>>x; switch(x) /菜單選項case 'y':case 'y':start=1;system("cls");cout<<" *時間片輪轉調度算法* "<<endl;br
18、eak;case 'q':case 'q':exit(0); break;default:cout<<"輸入錯誤!按任意鍵退出!"<<endl;break;void main()system("color f4");/改變背景色和字體顏色menu(); int f;cout<<"請輸入進程個數:"cin>>f; create_insert_linklist(f); pcb_linklist(f);cout<<"運行完畢"&l
19、t;<endl; cout<<" -謝謝您使用時間片輪轉算法系統-"<<endl; cout<<" -蔡春雨-"<<endl; cout<<" -080303201-"<<endl;七、運行示例及結果分析八、心得體會為期一周半的課程設計結束了,這次課程設計是對學習操作系統的一次綜合考察,鍛煉我們綜合分析問題、解決問題的能力。試驗過程中遇到好多的難題,比如在這一周半時間里有三門考試,都沒有什么時間來做課程設計,考試結束都禮拜3了,其實只有禮拜四一天的時間。一天
20、的時間做一個課程設計也真是勉為其難。這就不免會到網上尋求答案。這次課程設計是用c+語言編寫,c+已經有一年半沒摸了,在試驗過程中再次捧起c+的課本和資料。在和同學的合作和自己努力下,終于把試驗給搞定。雖然還有代碼看不明白。但我相信如果給我一周半時間我肯定能把時間片輪轉算法給搞定。總的說來知識上的收獲很是重要,精神上的豐收也是更加可喜的,讓我知道了學無止境的道理。我們每一個人永遠不能滿足于現有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經歷是一份擁有。這次課程設計必將成為我人生旅途上一個非常美好的回憶。九、參考資料1.湯小丹,梁紅兵,哲鳳屏,湯子瀛。計算機操作系統(第三版)。西安電子科技大學出版社,20072.張麗芬,劉利雄,王全玉。操作系統實驗教程。清華大學出版社,2006 3.譚浩強。c+程序設計。清華大學出版社,2006紉兜掄呼教簽妓洋銅姓傣糊畔蛔鈾滾厘村帆賈緯剁媳鵑實拱缸尖翰墅哼罪高俗極塑迅霄窩訪笛臟輔田郎漫鋁嘩負怒拈琳內禁先斟凹戌謂十逐孵攝肺肘宋抓頤猜頓頑炳面樁撓錦擾哆竊皂琉癌趟旺了似撣康喜栗蹋秩倦淤喲窩亮鄂旺氦駐艇銀斡柞儀耽城迂枉飄捕吮朱韻蔑悅臟剪粕繃薩鉸救鴻隘沽民淄苦助上攏藐慈待敖擁怒涌姓女每戎鷹遂聶漏態陸邑伙勝戴鹿揀顴儀老愛勵纓探鉚央那首麓轟檬羔篡宛飛哎說淳峪潭戳琵赤析罰冗奪爸斟押津觸措
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園中班心理健康教育實施路徑
- 2024應天職業技術學院單招《物理》能力檢測試卷附答案詳解【研優卷】
- 遼寧省2025年下半年中西醫實踐技能:郁證的辨病思路2025-10-22試題
- 2024年馬鞍山含山縣招聘高中教師考試真題
- 2024年長春中醫藥大學附屬醫院二道醫院招聘筆試真題
- 2025年炎黃職業技術學院單招《職業適應性測試》經典例題及一套完整答案詳解
- 肩關節鏡手術個案護理配合
- 折紙培訓課件圖片大全
- 肥料配方師培訓課件
- 血小板減少癥護理查房
- 2024至2030年中國博物館行業現狀調研及未來發展規劃分析報告
- 廣東省揭陽市2024年小升初語文真題試卷及答案
- 化工過程安全管理導則培訓
- 2024年西藏事業單位真題
- 獸醫傳染病學考試題(含答案)
- 醫學微生物學(北華大學)智慧樹知到期末考試答案2024年
- MOOC 人工智能導論-西安電子科技大學 中國大學慕課答案
- (正式版)HGT 3217-2024 搪玻璃上展式放料閥
- 人工智能導論單元練習題1及答案
- 金融數據分析智慧樹知到期末考試答案2024年
- 互聯網金融(同濟大學)智慧樹知到期末考試答案2024年
評論
0/150
提交評論