版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
操作系統(tǒng)實驗報告院系:專業(yè):班級:學號:姓名:指導(dǎo)老師:進程調(diào)度的模擬與內(nèi)存管理實驗?zāi)康脑诓捎枚嗟莱绦蛟O(shè)計的系統(tǒng)中,往往有若干個進程同時處在就緒狀態(tài)。當就續(xù)進程個數(shù)不不大于解決器數(shù)時,就必須根據(jù)某種方略來決定哪些進程優(yōu)先占用解決器。實驗?zāi)M實現(xiàn)解決機調(diào)度,以加深理解解決機調(diào)度的工作,并體會優(yōu)先級和時間片輪轉(zhuǎn)調(diào)度算法的具體實施辦法。協(xié)助理解在不同的存儲管理方式下,應(yīng)如何實現(xiàn)主存空間的分派和回收。二、實驗規(guī)定1、可隨機輸入若干進程,并按優(yōu)先權(quán)排序;2、從就緒隊首選進程運行:優(yōu)先權(quán)-1/規(guī)定運行時間-1規(guī)定運行時間=0時,撤銷該進程3、重新排序,進行下輪調(diào)度。4、可隨時增加進程;5、規(guī)定道數(shù),設(shè)立后備隊列和掛起狀態(tài)。若內(nèi)存中進程少于規(guī)定道數(shù),可自動從后備隊列調(diào)度一作業(yè)進入。被掛起進程入掛起隊列,設(shè)立解掛功效用于將指定掛起進程解掛入就緒隊列。6、每次調(diào)度后,顯示各進程狀態(tài)。7、自行假設(shè)主存空間大小,預(yù)設(shè)操作系統(tǒng)所占大小并構(gòu)造未分分區(qū)表;表目內(nèi)容:起址、長度、狀態(tài)(未分/空表目)8、結(jié)合以上實驗,PCB增加為:{PID,規(guī)定運行時間,優(yōu)先權(quán),狀態(tài),所需主存大小,主存起始位置,PCB指針}9、采用最先適應(yīng)算法分派主存空間;10、進程完畢后,回收主存,并與相鄰空閑分區(qū)合并。11、采用圖形界面;三、實驗內(nèi)容選擇一種調(diào)度算法,實現(xiàn)解決機調(diào)度。1、設(shè)計一種按優(yōu)先權(quán)調(diào)度算法實現(xiàn)解決機調(diào)度的程序;2、設(shè)計準時間片輪轉(zhuǎn)實現(xiàn)解決機調(diào)度的程序。3、主存儲器空間的分派和回收。在可變分區(qū)管理方式下,采用最先適應(yīng)算法實現(xiàn)主存空間的分派和回收。四、實驗原理該模擬系統(tǒng)采用java語言實現(xiàn),要實現(xiàn)的功效有新建進程、進程調(diào)度、掛起進程、解掛進程、刪除進程,道數(shù)和時間片大小能夠由顧客自己調(diào)節(jié),有兩種調(diào)度方略:按優(yōu)先權(quán)調(diào)度和準時間片輪轉(zhuǎn)調(diào)度。每個進程可能有5種狀態(tài):新建(new)、就緒(ready)、運行(running)、阻塞(waiting)、掛起(suspend)。每個狀態(tài)都有一種隊列用來寄存處在該狀態(tài)的進程,不同的調(diào)度方略采用不同的隊列實現(xiàn)。當創(chuàng)立進程時,如果內(nèi)存中的進程數(shù)還沒達成規(guī)定道數(shù),則將新建進程插入就緒隊列,如果內(nèi)存中進程數(shù)已經(jīng)達成規(guī)定道數(shù),則插到后備隊列,后備隊列中的進程的狀態(tài)為new。CPU每次調(diào)度時都從就緒隊列中取進程,在進程執(zhí)行過程中如果下一種操作時IO操作,則將進程插入到waiting隊列。在系統(tǒng)運行過程中能夠執(zhí)行進程掛起操作,但執(zhí)行的掛起操作時系統(tǒng)自動暫停運行,在彈出窗口選擇要掛起的進程后,將選中的進程從原來的隊列中刪除并插入到掛起隊列。進行解掛操作時將選中的進程從掛起隊列中刪除并插入該進程原來所處的隊列。按優(yōu)先級調(diào)度:當選擇按優(yōu)先權(quán)調(diào)度時,全部隊列都采用優(yōu)先隊列,優(yōu)先隊列采用一種有序鏈表實現(xiàn),進程的優(yōu)先權(quán)值越大代表優(yōu)先級越高,優(yōu)先隊列中的進程按優(yōu)先權(quán)從大到小排列,當新進程插入時根據(jù)該進程的優(yōu)先權(quán)插入到隊列中的適宜位置,插入后保持隊列按優(yōu)先權(quán)從大到小排列,如果新進程與隊列中某個進程優(yōu)先權(quán)值相等,則該新進程插到那個進程背面,以遵照先來先服務(wù)的規(guī)則。當要從隊列中取出進程時總是取隊列中第一種進程,由于該進程的優(yōu)先級最高。準時間片輪轉(zhuǎn)調(diào)度:當選擇準時間片輪轉(zhuǎn)調(diào)度時,全部隊列都采用先進先出隊列,先進先出隊列采用一種普通單向鏈表實現(xiàn),當新進程插入時插入到隊列的末尾,當要取進程時取隊首進程,這樣就實現(xiàn)了先進先出。內(nèi)存管理該實驗基于實驗一完畢,核心是內(nèi)存的分派和回收,在實驗一的基礎(chǔ)上增加內(nèi)存管理部分,在新建進程的時候增加一種輸入內(nèi)存大小的輸入框,在進程進入內(nèi)存時要分派內(nèi)存,在進程銷毀時要回收內(nèi)存,如果進入內(nèi)存時內(nèi)存局限性,則將進程插入到后備隊列等待下次調(diào)度。系統(tǒng)維護一種內(nèi)存表,每個表項代表一種空間,每個空間保存了該空間的起始地址和空間大小以及空間使用狀態(tài)。初始時只有一種空間,當CPU啟動時要分派內(nèi)存,內(nèi)存分派采用最先適應(yīng)算法?;厥諆?nèi)存時如果有相鄰空閑空間,則要進行空閑空間合并。五、部分源程序publicclassdata{privateStringname;etIsIn()==0) { for(inti=0;i<();i++) { if(i).getLimit()>=(0).getLength()) { (0).setStart(i).getBase()); (0).setIsIn(1); if(i).getLimit()==(0).getLength()) { update1(unAssignList,i); } else { (i).setBase(i).getBase()+(0).getLength()); (i).setLimit(i).getLimit()(0).getLength()); } break; } } } } if()>0) { for(intj=0;j<();j++) { if(j).getIsIn()==0) { for(inti=0;i<();i++) { if(i).getLimit()>=(j).getLength()) { (j).setStart(i).getBase()); (j).setIsIn(1); if(i).getLimit()==(j).getLength()) { update1(unAssignList,i); } else { (i).setBase(i).getBase()+(j).getLength()); (i).setLimit(i).getLimit()(j).getLength()); } break; } } } } } }移除內(nèi)存publicvoidputOutMemory(ArrayList<Data>list,intnum) { (num).setIsIn(0); booleanflag1=false; booleanflag2=false; for(inti=0;i<();i++) { if(i).getBase()==(num).getLength()+(num).getStart())) { (i).setBase(num).getStart()); (i).setLimit(num).getLength()+(i).getLimit()); flag1=true; break; } } for(inti=0;i<();i++) { if((i).getBase()+(i).getLimit())==(num).getStart()) { if(!flag1) { (i).setLimit(num).getLength()+(i).getLimit()); flag2=true; break; } else { (i).setLimit(i).getLimit()+(i+1).getLimit()); update1(unAssignList,i+1); } } } if(flag1||flag2) {} else { inti=0; while(i).getBase()<(num).getStart()) { i++; } Data_Memorydata=newData_Memory(); (num).getStart()); (num).getLength()); (); for(intj=0;j<i;j++) { (j)); } (data); for(intj=i;j<();j++) { (j)); } (); for(intj=0;j<();j++) { (j)); } } }對內(nèi)存管理調(diào)度的操作privateclassMyRendererextendsDefaultListCellRenderer { publicComponentgetListCellRendererComponent(JListlist,Objectvalue,intindex,booleanisSelected,booleancellHasFocus) { (list,value,index,isSelected,cellHasFocus); setBackground; for(inti=0;i<();i++) { for(intj=(i).getBase()+6;j<(i).getLimit()+(i).getBase()+6;j++) { if(index==j) { setBackground;etTime()==0) (); (); for(inti=0;i<();i++) { if(i).getTime()>0) { (i)); } } (); for(inti=0;i<();i++) { (i)); (i).setState("ready"); } etState("ready"); } etState("running"); update(readyList,0); if()>0) { (0)); (5).setState("ready"); } update(waitingList,0); } } elseetState("running"); ()-1).setState("ready"); (0)); update(readyList,0); } } putInMemory(); sub(); display(); (); } publicvoidPManager() { if()>0) if(0).getTime()==0) (); (); for(inti=0;i<();i++) { if(i).getTime()>0) { (i)); } } (); for(inti=0;i<();i++) { (i)); (i).setState("ready"); } intj=0; intm=(); for(;m<6&&j<();m++,j++) { (getFirstW(waitingList)-1)); (m).setState("ready"); update(waitingList,getFirstW(waitingList)-1); } etState("running"); update(readyList,getFirstW(readyList)-1); if()>0) { (getFirstW(waitingList)-1)); ()-1).setState("ready"); } update(waitingList,getFirstW(waitingList)-1); } } else { if()>0) { booleanflag=false; inta=(0).getPriority(); intb=(getFirstW(readyList)-1).getPriority(); if(a>b) { (); (getFirstW(readyList)-1)); flag=true; } if(flag) { (0).setState("ready"); (0)); (); (0)); (0).
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高性能混凝土材料承包協(xié)議3篇
- 2024版物流運輸購銷合同范本
- 2025年新員工試用期間勞動合同范本3篇
- 主體墻面刷漆施工專項合同版B版
- 2025年度貨運司機安全責任合同3篇
- 二零二五年度二手商品攤位租賃與交易平臺合作協(xié)議3篇
- 二零二五年餐廳員工加班及休息時間合同范本3篇
- 2024聘用培訓講師合作協(xié)議書包含師資評估體系3篇
- 2024茶葉行業(yè)市場開拓與推廣合同
- 2024的證券居間合同
- 《國有控股上市公司高管薪酬的管控研究》
- 餐飲業(yè)環(huán)境保護管理方案
- 人教版【初中數(shù)學】知識點總結(jié)-全面+九年級上冊數(shù)學全冊教案
- 食品安全分享
- 礦山機械設(shè)備安全管理制度
- 計算機等級考試二級WPS Office高級應(yīng)用與設(shè)計試題及答案指導(dǎo)(2025年)
- 造價框架協(xié)議合同范例
- 糖尿病肢端壞疽
- 心衰患者的個案護理
- 醫(yī)護人員禮儀培訓
- 無人機飛行安全協(xié)議書
評論
0/150
提交評論