下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機科學與技術學院實驗報告實驗題目:ExtensionofAddrSpace學號:日期:202371-25班級:2023-3姓名:陶旭濤EmaiI:實驗目的:在了解了Nachos裝入并執(zhí)行單個用戶進程的情況后,我們就需要進一步完畢用戶內存空間的擴充以便多用戶程序同時駐留內存,進而使多用戶進程并發(fā)執(zhí)行。硬件環(huán)境:Mem:3.9GCPU:Intel?Coretm2QuadCPUQ9500@2.83GHzx4Disk:15.5GB軟件環(huán)境:System:ubuntu12.O4LSTi386gcc:(Ubuntu4.6.3—1ubuntu5)4.6.3nachossystem實驗環(huán)節(jié):要在Nachos中實現(xiàn)多用戶程序同時駐留內存并發(fā)執(zhí)行,一方面涉及到Nachos的兩個系統(tǒng)調用:Exec()和Exit()o這兩個系統(tǒng)調用也是構造父子進程并發(fā)執(zhí)行的基礎。假設我們有以卜兩個用戶程序:../test/exec.c和../test/ha11.c../test/ha1t.c第65頁用戶進程管理設計#incIude"syscaII.h"intmain()(HaltO}../test/exec.c#incIude"syscaII.h"intmain0(Spacidpid;pid=Exec("../test/haIt.noff");HaIt0)在文獻../test/exec,c第5行上的語句Exec是一條Nachos的系統(tǒng)功能調用,它的功能為裝入并執(zhí)行以其參數(shù)為名的可執(zhí)行文獻,即創(chuàng)建一個新的用戶進程。假設我們先執(zhí)行../test/exec.noff程序,則../test/exec.noff會在它還沒有執(zhí)行結束時又裝入并執(zhí)行此外一個程序halt,n。開,并與它同時駐留內存.DEBUG(,dd\n,numPages,size);trst,setupthetranslationpageTable=newTranslationEntry[numPages];for(t=;t<numPages;t++){pageTable[t].vtrtualPage=t;pageTable[i].physicalPage=usermap->Find();pageTable[t].valid=TRUE;pageTable[t].use=FALSE;pageTable[i].dirty=FALSE;pageTable[t].readonly=FALSE;//aseparatepage,wecouldsetits//pagestoberead-onlypageTable[i].physicaIPage=usermap―>Find();避免從頭開始物理存儲覆蓋了前一個用戶程序的內存內容運用Nachos在../userprog/bitmap.h中文獻定義的Bitmap類。運用bitmap記錄和申請內存物理幀,使不同的程序裝入到不同的物理空間中去,下面是對新的內存分派存儲算法,改善了對多個用戶程序的同時進駐內存的支持if(noffH.code.size>){DEBUG(,'>.W\n,noffH.code.vtrtualAddr,noffH.code.size);intnunberofPages;nunberofPdgesMltvRoundUp(noffH.code.size,Pagesize);for(i=;t<nunberofPages;t**){prtntf(,pageTable[t].phystcalPage,PageStze);print",noffH.code.InFUeAddr+VPageStze);print”.PageStze);executable->ReadAt(?(Mchtne->natnMe?)ry[pdgeTable[t].phy$kalPage*PageStze]),PdgeSUe,noffH.code.tnFt.leAd<Jr*t*Pagestze);})if(noffH.tnttData.size>){DEBUG(,,noffH.tnttData.vtrtualAddr,noffH.tnttData.size);executable->fleadAt(4(Mchtne->nainHe?)ry[fK>ffH.tnttData.vtrtuaUddr]),noffH.initData.size,rx>ffH.tnttOata.tnFUeAddr);intnunberofP.firstP;nunberofP=dtvRoundup(noffH.tnttData.size,PageSlze);(Wr,PageStze);for(t?firstP;t<nuHl)erofP;t++){prtntf(,pageTable[t].phystcalPage,PageSlze);prtntf(,i)offH.tnttData.InFUeAddr+VPageSize);printf();executable->ReadAt(t(Aachtne->NtnNeRory[pageTable(t].phystcdlPage*PageStze]),PageStze,noffH.tnttData.tnFUeAddr+t*PageStze);))Print();)這是對Bi(Map的代碼修改,每次分派的時候要找到bitmap中的空閑頁進行分派,而不能從0頁開始分派在AddressSpace類中聲明bi(map對象staticBitMap*mbitmap=newBitMap(NumPhysPages);voidBitMap::Prtnt()(printf(\n);for(inti=;i<numBits;t++)if(Test(t))prtntf(,t);prtntf();)//Thesearen'tneededuntiltheFILESYSassignment////BitMap::FetchFromFile//InitializethecontentsofabitmapfromaNachosfile.////"file"istheplacetoreadthebitmapfrom//voidBitMap::FetchFrom(OpenFtle*file)(file->ReadAt((char*)map,numWords*sizeof(unsigned),);)////BitMap::WrtteBack//StorethecontentsofabitmaptoaNachosfile.////"file"istheplacetowritethebitmapto//voidBttMap::WriteBack(OpenFtle*file)Ifile->WrtteAt((char*)map,numWords*sizeof(unsigned),);運營./nachos-x../test/exec.noffking@kingvm:~/nachos-3.4/code/lab7-8$./nachos-x../test/exec.noff★★★king@kingvm:~/nachos-3.4/code/lab7-8$./nachos-x../test/exec.noff★★★thread0looped0times***thread1looped0times★★★thread0looped1times★★★thread1looped1times★★★thread0looped2times★★★thread1looped2times***thread0looped3times★★★thread1looped3times★★★thread1looped4times★★★thread0looped4timestheallocatedphysicalAddress:?theaddressintheexecutablefile:40copysize128theallocatedphysicalAddress:128theaddresstntheexecutablefile:168copysize128theallocatedphysicalAddress:256theaddressintheexecutablefile:296copysize128pagetabledump:12pagestntotalVtrPage,PhysPagee,01,12,23,34,45,56,67,78,89,910,1011,11Exec—調用theallocatedphysicalAddress:1536theaddressintheexecutablefile:40copysize128theallocatedphysicalAddress:1664theaddressintheexecutablefile:168copysize128pagetabledump:10pagesintotalVirPage,PhysPage0,121,132,143,154,165,176,187,198,209,21Machinehalting!Ticks:total165,idle0,system140,user25DiskI/O:reads0,writes0ConsoleI/O:reads0,writes0Paging:faults0NetworkI/O:packetsreceived0,sent0Cleaningup...ktng
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 樓梯定購合同范本
- 靈活用工勞務合同范本解析
- 市場營銷授權合同范本
- 2025年農村電商生態(tài)系統(tǒng)建設項目可行性研究報告
- 2025年掌中寶社交游戲平臺開發(fā)項目可行性研究報告
- 2025年智能安防監(jiān)控系統(tǒng)部署項目可行性研究報告
- 2025年郵輪旅游經(jīng)濟開發(fā)項目可行性研究報告
- 2025年線下實體店數(shù)字化轉型項目可行性研究報告
- 2025年新媒體廣告投放管理項目可行性研究報告
- 2025年智能城市環(huán)境監(jiān)測系統(tǒng)建設項目可行性研究報告
- 2025房屋買賣合同范本(下載)
- 【MOOC期末】《模擬電子技術基礎》(華中科技大學)期末考試慕課答案
- 腦炎的護理課件
- 胎頭吸引技術課件
- 電池PACK箱體項目可行性研究報告(備案審核模板)
- 貴州省2023年7月普通高中學業(yè)水平合格性考試地理試卷(含答案)
- 實施“十五五”規(guī)劃的發(fā)展思路
- 資金無償贈予協(xié)議書
- 課件王思斌:社會工作概論
- 2025年度交通運輸安全生產費用使用計劃
- 防水工程驗收單
評論
0/150
提交評論