![按時間片輪轉(zhuǎn)法實現(xiàn)處理器調(diào)度_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a28e1da1-8ede-4b7c-91fd-ea030684269a/a28e1da1-8ede-4b7c-91fd-ea030684269a1.gif)
![按時間片輪轉(zhuǎn)法實現(xiàn)處理器調(diào)度_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a28e1da1-8ede-4b7c-91fd-ea030684269a/a28e1da1-8ede-4b7c-91fd-ea030684269a2.gif)
![按時間片輪轉(zhuǎn)法實現(xiàn)處理器調(diào)度_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a28e1da1-8ede-4b7c-91fd-ea030684269a/a28e1da1-8ede-4b7c-91fd-ea030684269a3.gif)
![按時間片輪轉(zhuǎn)法實現(xiàn)處理器調(diào)度_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a28e1da1-8ede-4b7c-91fd-ea030684269a/a28e1da1-8ede-4b7c-91fd-ea030684269a4.gif)
![按時間片輪轉(zhuǎn)法實現(xiàn)處理器調(diào)度_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a28e1da1-8ede-4b7c-91fd-ea030684269a/a28e1da1-8ede-4b7c-91fd-ea030684269a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、組號 成績 計算機操作系統(tǒng)課程設計報告 題目 處理器調(diào)度 專業(yè): 計算機科學與技術 班級: 2 學號: 姓名: 指導教師: 2016年12月 27日一設計目的在采用多道程序設計的系統(tǒng)中,往往有若干個進程同時處于就緒狀態(tài)。當就緒進程個數(shù)大于處理器數(shù)時,就必須依照某種策略來決定哪些進程優(yōu)先占用處理器。本實驗模擬在單處理器情況下的處理器調(diào)度,幫助學生加深了解處理器調(diào)度的工作。二設計內(nèi)容選擇一個調(diào)度算法,實現(xiàn)處理器調(diào)度。按時間片輪轉(zhuǎn)法實現(xiàn)處理器調(diào)度的模擬設計與實現(xiàn)提示:(1) 假定系統(tǒng)有五個進程,每一個進程用一個進程控制塊PCB來代表。進程控制塊的格式為:進程名指針要求運行時間已運行時間狀態(tài)其中,進程
2、名作為進程的標識,假設五個進程的進程名分別為Q1,Q2,Q3,Q4,Q5。指針進程按順序排成循環(huán)隊列,用指針指出下一個進程的進程控制塊的首地址,最后一個進程的指針指出第一個進程的進程控制塊首地址。要求運行時間假設進程需要運行的單位時間數(shù)。已運行時間假設進程已經(jīng)運行的單位時間數(shù),初始值為“0”。狀態(tài)有兩種狀態(tài),“就緒”和“結(jié)束”,初始狀態(tài)都為“就緒”,用“R”表示。當一個進程運行結(jié)束后,它的狀態(tài)為“結(jié)束”,用“E”表示。(2) 每次運行所設計的處理器調(diào)度程序前,為每個進程任意確定它的“要求運行時間”。(3) 把五個進程按順序排成循環(huán)隊列,用指針指出隊列連接情況。另用一標志單元記錄輪到運行的進程。
3、例如,當前輪到P2執(zhí)行,則有:標志單元 K2 K1Q1 K2Q2 K3Q3 K4Q4 K5Q5K2K3K4K5K12312410000RRRRRPCB1PCB2PCB3PCB4PCB5(4) 處理器調(diào)度總是選擇標志單元指示的進程運行。由于本實驗是模擬處理器調(diào)度的功能,所以,對被選中的進程并不實際的啟動運行,而是執(zhí)行:已運行時間+1來模擬進程的一次運行,表示進程已經(jīng)運行過一個單位的時間。請同學注意:在實際的系統(tǒng)中,當一個進程被選中運行時,必須置上該進程可以運行的時間片值,以及恢復進程的現(xiàn)場,讓它占有處理器運行,直到出現(xiàn)等待事件或運行滿一個時間片。在這時省去了這些工作,僅用“已運行時間+1”來表示
4、進程已經(jīng)運行滿一個時間片。(5) 進程運行一次后,應把該進程的進程控制塊中的指針值送到標志單元,以指示下一個輪到運行的進程。同時,應判斷該進程的要求運行時間與已運行時間,若該進程的要求運行時間¹已運行時間,則表示它尚未執(zhí)行結(jié)束,應待到下一輪時再運行。若該進程的要求運行時間=已運行時間,則表示它已經(jīng)執(zhí)行結(jié)束,應指導它的狀態(tài)修改成“結(jié)束”(E)且退出隊列。此時,應把該進程的進程控制塊中的指針值送到前面一個進程的指針位置。(6) 若“就緒”狀態(tài)的進程隊列不為空,則重復上面的(4)和(5)的步驟,直到所有的進程都成為“結(jié)束”狀態(tài)。(7) 在所設計的程序中應有顯示或打印語句,能顯示或打印每次選
5、中進程的進程名以及運行一次后進程隊列的變化。(8) 為五個進程任意確定一組“要求運行時間”,啟動所設計的處理器調(diào)度程序,顯示或打印逐次被選中的進程名以及進程控制塊的動態(tài)變化過程。三設計原理在早期的時間片輪轉(zhuǎn)法中,系統(tǒng)將所有的就緒進程按先來先服務的原則,排成一個隊列,每次調(diào)度時,把CPU分配給隊首進程,并令其執(zhí)行一個時間片.時間片的大小從幾ms到幾百ms.當執(zhí)行的時間片用完時,由一個計時器發(fā)出時鐘中斷請求,調(diào)度程序便據(jù)此信號來停止該進程的執(zhí)行,并將它送往就緒隊列的末尾;然后,再把處理機分配給就緒隊列中新的隊首進程,同時也讓它執(zhí)行一個時間片.這樣就可以保證就緒隊列中的所有進程,在一給定的時間內(nèi),均
6、能獲得一時間片的處理機執(zhí)行時間.四詳細設計及編碼1.模塊分析在此算法中,首先聲明了一個類,通過使用類的對象來體現(xiàn)進程的實例。類名為PCB,類中有公有字段如下:Char name10:字符數(shù)組,用于存儲進程名;PCB *next:PCB類型的指針,用于指向下一個即將執(zhí)行的對象的指針;Int time:整型,表示進程運行所需的總時間;Int run:整型,表示進程已運行的時間,初始值設置為0;Char state:字符型,表明進程當前的狀態(tài); 通過類中的對象指針,可以形成一個循環(huán)隊列。除此以外,還定義了兩個靜態(tài)的對象指針,分別是:Static PCB *p:在自定義方法中指向當前對象,即當前運行的
7、進程;Static PCB *flag:指向當前對象的前一個對象,即之前第一個運行結(jié)束的進程;另外,程序中還自定義了兩個方法,分別是void status(PCB block)和void active(PCB block): void status(PCB block):用于顯示當前進程情況;void active(PCB block):用于調(diào)度進程;int main():主函數(shù),在其中先輸入了對象數(shù)組的長度,由此聲明一個對象數(shù)組。再依次輸入每一個進程的進程名和所需運行時間,將每一個進程的運行狀態(tài)更改為R,再通過對每一個對象中的對象指針賦值,將進程排成一個循環(huán)隊列。再進入循環(huán),開始進行進程調(diào)度
8、。2.流程圖3.代碼實現(xiàn)PCB類的定義:class PCBpublic:char name10;/進程名PCB *next;/指針int time;/所需運行時間int run=0;/已運行時間char state;/R->ready;E->end;顯示當前進程情況的方法:void status(PCB block)/顯示當前進程隊列狀況cout<<"此時進程情況:"<<"ordertnamettimetruntremaintstate"<<endl;for(int i=0;i<len;i+)if(b
9、locki.state!='E')cout<<" "<<i+1<<"t "<<<<"t"<<" "<<blocki.time<<"t"<<" "<<blocki.run<<"t "<<blocki.time-blocki.run<<"t "<
10、;<blocki.state<<endl;cout<<endl;用于進程調(diào)度的方法:void active(PCB block)if(p->state='E')/如果此進程狀態(tài)為E,則跳過,不調(diào)度執(zhí)行return;elsecout<<"-調(diào)度進程"<<p->name<<"-"<<endl;p->run+;/進程的已運行時間加一if(p->run=p->time)/如果加一后達到所需總的運行時間p->state='E
11、39;/將進程狀態(tài)更改為Eflag->next=p->next;/將前一個進程的指針指向后續(xù)進程proc-;/隊列中運行的進程數(shù)減一cout<<"進程"<<p->name<<"運行結(jié)束,退出隊列"<<endl; status(block);/展示當前的運行狀態(tài)主函數(shù):int main()cout<<"-時間片輪轉(zhuǎn)調(diào)度算法-"<<endl<<"請輸入進程個數(shù):"cin>>proc;/輸入進程個數(shù)len=p
12、roc;int i=0;PCB blockproc;/初始化對象數(shù)組 p=&block0;/將當前指針指向第一個進程for(;i<proc;i+)cout<<"請輸入進程"<<i+1<<"的名稱和所需運行時間:"if(i!=proc-1)/將對象數(shù)組排成隊列blocki.next=&blocki+1; /如果不是最后一個進程,則將指針指向下一個進程elseblocki.next=&block0;/如果是最后一個進程,則將指針指向第一個進程cin>>;cin
13、>>blocki.time;blocki.state='R' cout<<"此時進程情況:"<<endl<<"ordertnamettimetruntstate"<<endl;for(i=0;i<proc;i+)cout<<" "<<i+1<<"t"<<<<"t"<<" "<<blocki.
14、time<<"t"<<" "<<blocki.run<<"t"<<" "<<blocki.state<<endl;cout<<endl;while(proc!=0)/在當前隊列中進程數(shù)不為0時循環(huán)active(block);/調(diào)度當前進程flag=p;/調(diào)度后,flag指向剛剛運行結(jié)束的對象p=p->next;/而p指針指向下一個對象4.結(jié)果及其相關分析(結(jié)果必須是圖示)程序開始,先輸入進程個數(shù),然后依次輸入每個進程的進程名和所需的運行時間,輸入完畢后輸出當前進程隊列情況;然后對進程依次進行調(diào)度,依據(jù)時間片輪轉(zhuǎn)算法:顯示情況分別為 order:進程順序;name:進程名;run:已運行時間;remain:剩余時間;State:運行狀態(tài)如果當前調(diào)度的進程運行結(jié)束,那么就退出該循環(huán)隊列,同時輸出提示;此時輸出隊列情況將不再包含已運行結(jié)束的進程。當進程全部運行結(jié)束之后,程序運行結(jié)束
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務合同范本
- 兩人股份合作合同范本
- 中藥材種苗購銷合同
- 目標決定未來
- 房屋買賣合同協(xié)議書26609
- 房產(chǎn)買賣中介合同
- 吊籃設備租賃合同書
- 中級財務會計案例講課教案
- 風電項目主吊車裝拆方案
- 基于CiteSpace的AED配置國內(nèi)外研究現(xiàn)狀與進展的可視化分析
- 中學安全辦2024-2025學年工作計劃
- 2024年山東省東營市中考數(shù)學試題 (解析版)
- 2024年陜西西安亮麗電力集團有限責任公司招聘筆試沖刺題(帶答案解析)
- 2024年鄉(xiāng)村振興(產(chǎn)業(yè)、文化、生態(tài))等實施戰(zhàn)略知識考試題庫與答案
- 網(wǎng)絡安全基礎知識入門教程
- AI智慧物流園區(qū)整體建設方案
- 2024年遼寧鐵道職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 無痛人工流產(chǎn)術課件
- 心力衰竭業(yè)務學習護理課件
- 美發(fā)學徒助理職業(yè)規(guī)劃書
- 法醫(yī)病理學課件
評論
0/150
提交評論