版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE1操作系統(tǒng)實(shí)驗(yàn)報(bào)告課程名稱操作系統(tǒng)實(shí)驗(yàn)課程編號(hào)0906553實(shí)驗(yàn)項(xiàng)目名稱物理存儲(chǔ)器與進(jìn)程邏輯地址空間的管理學(xué)號(hào)年級(jí)姓名專業(yè)學(xué)生所在學(xué)院指導(dǎo)教師實(shí)驗(yàn)室名稱地點(diǎn)哈爾濱工程大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
第五次物理存儲(chǔ)器與進(jìn)程邏輯地址空間的管理一、實(shí)驗(yàn)概述1.實(shí)驗(yàn)名稱物理存儲(chǔ)器與進(jìn)程邏輯地址空間的管理2.實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)查看物理存儲(chǔ)器的使用情況,并練習(xí)分配和回收物理內(nèi)存,從而掌握物理存儲(chǔ)器的管理方法。通過(guò)查看進(jìn)程邏輯地址空間的使用情況,并練習(xí)分配和回收虛擬內(nèi)存,從而掌握進(jìn)程邏輯地址空間的管理方法。3.實(shí)驗(yàn)類型驗(yàn)證+設(shè)計(jì)4.實(shí)驗(yàn)內(nèi)容準(zhǔn)備實(shí)驗(yàn)閱讀控制臺(tái)命令“pm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果分配物理頁(yè)和釋放物理頁(yè)閱讀控制臺(tái)命令“vm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果在系統(tǒng)進(jìn)程中分配虛擬頁(yè)和釋放虛擬頁(yè)在應(yīng)用程序進(jìn)程中分配虛擬頁(yè)和釋放虛擬頁(yè)二、實(shí)驗(yàn)環(huán)境EOS操作系統(tǒng)和OSLab集成實(shí)驗(yàn)環(huán)境,主要運(yùn)用了C語(yǔ)言。三、實(shí)驗(yàn)過(guò)程1.設(shè)計(jì)思路和流程圖else{printf("\n");printf("realeaseerror");}printf("\n");printf("\nEndlessloop!");while(1){};/*進(jìn)入死循環(huán),這樣應(yīng)用程序就不會(huì)結(jié)束。*/ }else{printf("Error!\n");return0;}printf("Success!\n");return1;}4.程序運(yùn)行時(shí)的初值和運(yùn)行結(jié)果4.1準(zhǔn)備實(shí)驗(yàn)啟動(dòng)OSLab。新建一個(gè)EOSKernel項(xiàng)目。4.2閱讀控制臺(tái)命令“pm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果按照下面的步驟執(zhí)行控制臺(tái)命令“pm”,查看物理存儲(chǔ)器的信息:1.按F7生成在本實(shí)驗(yàn)3.1中創(chuàng)建的EOSKernel項(xiàng)目。2.按F5啟動(dòng)調(diào)試。3.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“pm”后按回車。4.3分配物理頁(yè)和釋放物理頁(yè)接下來(lái),在pm命令函數(shù)中添加分配物理頁(yè)和釋放物理頁(yè)的代碼,單步調(diào)試管理物理頁(yè)的方法。1.使用OSLab打開(kāi)本實(shí)驗(yàn)文件夾中的pm.c文件。2.使用pm.c文件中ConsoleCmdPhysicalMemory函數(shù)的函數(shù)體替換ke/sysproc.c文件中ConsoleCmdPhysicalMemory函數(shù)的函數(shù)體。3.按F7生成修改后的EOSKernel項(xiàng)目。4.按F5啟動(dòng)調(diào)試。5.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“pm”后按回車。按照下面的步驟調(diào)試分配物理頁(yè)和釋放物理頁(yè)的過(guò)程:1.結(jié)束之前的調(diào)試。2.在ke/sysproc.c文件的ConsoleCmdPhysicalMemory函數(shù)中,在調(diào)用MiAllocateAnyPages函數(shù)的代碼行添加一個(gè)斷點(diǎn),在調(diào)用MiFreePages函數(shù)的代碼行添加一個(gè)斷點(diǎn)。3.按F5啟動(dòng)調(diào)試。4.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“pm”后按回車。5.pm命令開(kāi)始執(zhí)行后,會(huì)在調(diào)用MiAllocateAnyPages函數(shù)的代碼行處中斷,按F11調(diào)試進(jìn)入MiAllocateAnyPages函數(shù)。6.按F10單步調(diào)試MiAllocateAnyPages函數(shù)的執(zhí)行過(guò)程。繼續(xù)調(diào)試釋放物理頁(yè)的過(guò)程:1.按F5繼續(xù)執(zhí)行,會(huì)在調(diào)用MiFreePages函數(shù)的代碼行處中斷,按F11調(diào)試進(jìn)入MiFreePages函數(shù)。2.按F10單步調(diào)試MiFreePages函數(shù)的執(zhí)行過(guò)程。結(jié)束此次調(diào)試。4.4閱讀控制臺(tái)命令“vm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果按照下面的步驟執(zhí)行控制臺(tái)命令“vm”,查看系統(tǒng)進(jìn)程的虛擬地址描述符信息:1.按F5啟動(dòng)調(diào)試。2.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“pt”后按回車?!皃t”命令可以輸出當(dāng)前系統(tǒng)中的進(jìn)程列表,其中系統(tǒng)進(jìn)程的ID為1。3.在EOS控制臺(tái)中輸入命令“vm1”后按回車??梢园凑障旅娴牟襟E執(zhí)行控制臺(tái)命令“vm”,查看當(dāng)創(chuàng)建了一個(gè)應(yīng)用程序進(jìn)程后,系統(tǒng)進(jìn)程和應(yīng)用程序進(jìn)程中虛擬地址描述符的信息:1.在“項(xiàng)目管理器”窗口中雙擊Floppy.img文件使用FloppyImageEditor工具打開(kāi)此軟盤(pán)鏡像。2.將本實(shí)驗(yàn)文件夾中的LoopApp.exe文件添加到軟盤(pán)鏡像的根目錄中。3.點(diǎn)擊FloppyImageEditor工具欄上的保存按鈕,關(guān)閉該工具。4.按F5啟動(dòng)調(diào)試。5.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“A:\LoopApp.exe”后按回車。此時(shí)就使用EOS應(yīng)用程序文件LoopApp.exe創(chuàng)建了一個(gè)應(yīng)用程序進(jìn)程,由于此進(jìn)程執(zhí)行了一個(gè)死循環(huán),所以此進(jìn)程不會(huì)結(jié)束執(zhí)行,除非關(guān)閉虛擬機(jī)。6.此時(shí)按Ctrl+F2切換到“Console-2”,然后輸入命令“pt”后按回車。輸出的信息如圖所示。其中ID為31的進(jìn)程就是應(yīng)用程序進(jìn)程,ID為33的線程就是應(yīng)用程序進(jìn)程的主線程。7.輸入命令“vm1”后按回車,可以查看系統(tǒng)進(jìn)程中虛擬地址描述符的信息。8.輸入命令“vm31”后按回車,可查看應(yīng)用程序進(jìn)程中虛擬地址描述符的信息。為了加深對(duì)進(jìn)程邏輯地址空間的理解,可以在控制臺(tái)1至控制臺(tái)7中都執(zhí)行命令“A:\LoopApp.exe”,從而讓?xiě)?yīng)用程序創(chuàng)建7個(gè)進(jìn)程,然后在控制臺(tái)8中執(zhí)行“pt”、“vm”等命令,查看系統(tǒng)進(jìn)程和應(yīng)用程序進(jìn)程的虛擬地址描述符。4.5在系統(tǒng)進(jìn)程中分配虛擬頁(yè)和釋放虛擬頁(yè)首先,按照下面的步驟修改vm命令的源代碼:1.使用OSLab打開(kāi)本實(shí)驗(yàn)文件夾中的vm.c文件。2.使用vm.c文件中ConsoleCmdVM函數(shù)的函數(shù)體替換ke/sysproc.c文件中ConsoleCmdVM函數(shù)的函數(shù)體。3.按F7生成修改后的EOSKernel項(xiàng)目。4.按F5啟動(dòng)調(diào)試。5.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“vm1”后按回車。命令執(zhí)行的結(jié)果會(huì)同時(shí)轉(zhuǎn)儲(chǔ)在“輸出”窗口中,內(nèi)容如圖所示。1.在ke/sysproc.c文件的ConsoleCmdVM函數(shù)中,在調(diào)用MmAllocateVirtualMemory函數(shù)的代碼行添加一個(gè)斷點(diǎn),在調(diào)用MmFreeVirtualMemory函數(shù)的代碼行添加一個(gè)斷點(diǎn)。2.按F5啟動(dòng)調(diào)試。3.待EOS啟動(dòng)完畢,在EOS控制臺(tái)中輸入命令“vm1”后按回車。4.vm命令開(kāi)始執(zhí)行后,會(huì)在調(diào)用MmAllocateVirtualMemory函數(shù)的代碼行處中斷。此時(shí)要注意參數(shù)BaseAddress和RegionSize初始化的值。按F11調(diào)試進(jìn)入MmAllocateVirtualMemory函數(shù)。5.按F10單步調(diào)試MmAllocateVirtualMemory函數(shù)的執(zhí)行過(guò)程,嘗試回答下面的問(wèn)題:繼續(xù)調(diào)試釋放虛擬頁(yè)的過(guò)程:1.按F5繼續(xù)執(zhí)行,會(huì)在調(diào)用MmFreeVirtualMemory函數(shù)的代碼行處中斷。此時(shí)要注意參數(shù)BaseAddress和RegionSize初始化的值。按F11調(diào)試進(jìn)入MmFreeVirtualMemory函數(shù)。2.按F10單步調(diào)試MmFreeVirtualMemory函數(shù)的執(zhí)行過(guò)程,嘗試回答下面的問(wèn)題:1.嘗試在調(diào)用MmAllocateVirtualMemory函數(shù)時(shí)將RegionSize參數(shù)的設(shè)置為PAGE_SIZE+1。2.在調(diào)用MmAllocateVirtualMemory函數(shù)時(shí)將BaseAddress參數(shù)的值設(shè)置為已經(jīng)被占用的虛擬內(nèi)存0xA0000000,觀察“輸出”窗口中轉(zhuǎn)儲(chǔ)的信息。3.嘗試在調(diào)用MmAllocateVirtualMemory函數(shù)時(shí)將RegionSize參數(shù)的值設(shè)置為PAGE_SIZE*2,將BaseAddress參數(shù)的值設(shè)置為0xA0017004,觀察“輸出”窗口中轉(zhuǎn)儲(chǔ)的信息。4.6在應(yīng)用程序進(jìn)程中分配虛擬頁(yè)和釋放虛擬頁(yè)4.6.1要求創(chuàng)建一個(gè)EOS應(yīng)用程序,并編寫(xiě)代碼完成下列功能:1.調(diào)用API函數(shù)VirtualAlloc,分配一個(gè)整型變量所需的空間,并使用一個(gè)整型變量的指針指向這個(gè)空間。2.修改整型變量的值為0xFFFFFFFF。在修改前輸出整型變量的值,在修改后再輸出整型變量的值。3.調(diào)用API函數(shù)Sleep,等待10秒鐘。4.調(diào)用API函數(shù)VirtualFree,釋放之前分配的整型變量的空間。5.進(jìn)入死循環(huán),這樣應(yīng)用程序就不會(huì)結(jié)束。4.6.2測(cè)試方法1.代碼修改完畢后,按F7生成EOS應(yīng)用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 總經(jīng)理助理轉(zhuǎn)正工作總結(jié)8篇
- 數(shù)學(xué)教學(xué)工作總結(jié)(匯編15篇)
- 小學(xué)生讀書(shū)演講稿4篇
- 2017年寒假綜合實(shí)踐作業(yè)總結(jié)
- 將精神撫慰金列入刑事附帶民事訴訟
- 做幸福教師演講稿(4篇)
- 2025年文旅小鎮(zhèn)合作協(xié)議書(shū)
- 停車場(chǎng)地出租合同(2篇)
- 2025年CBZ-5-苯基-L-半胱氨酸項(xiàng)目發(fā)展計(jì)劃
- 個(gè)人車輛出租合同
- 關(guān)于大數(shù)據(jù)的職業(yè)生涯規(guī)劃書(shū)課件
- 部編版高中語(yǔ)文必修上冊(cè)第二單元測(cè)試題及答案
- 電子化文件與信息管理制度
- 2024年高考地理試卷(浙江)(1月)(解析卷)
- 心理健康講座(課件)-小學(xué)生心理健康
- 《腸造口并發(fā)癥的分型與分級(jí)標(biāo)準(zhǔn)(2023版)》解讀
- 名畫(huà)中的瘟疫史智慧樹(shù)知到期末考試答案章節(jié)答案2024年上海健康醫(yī)學(xué)院
- 《跟上兔子》繪本三年級(jí)第1季One-Day教學(xué)課件
- 家長(zhǎng)會(huì)課件:小學(xué)三年級(jí)家長(zhǎng)會(huì) 課件
- 孕產(chǎn)婦妊娠風(fēng)險(xiǎn)評(píng)估表
- PDCA循環(huán)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論