版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、操作系統(tǒng)實驗報告實驗題目物理存儲器與進程邏輯地址空間的管理學生姓名lee學 號專業(yè)班級指導(dǎo)教師院系名稱計算機與信息學院20仃年10 月 30 日實驗 7 物理存儲器與進程邏輯地址空間的管理1. 實驗?zāi)康呐c要求 通過查看物理存儲器的使用情況,并練習分配和回收物理內(nèi)存,從而掌握物理存儲器的 管理方法。通過查看進程邏輯地址空間的使用情況,并練習分配和回收虛擬內(nèi)存,從而掌握進程邏 輯地址空間的管理方法。2. 實驗原理閱讀本書第 6 章。重點閱讀第 6.3節(jié)和第 6.6 節(jié),了解物理存儲器的管理方式和進程邏輯 地址空間的管理方式。3. 實驗內(nèi)容3.1 準備實驗 按照下面的步驟準備實驗:1. 啟動 OS
2、Lab。2. 新建一個 EOS Kernel 項目。3.2閱讀控制臺命令“ pm相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果閱讀ke/sysproc.c 文件中第1059行的ConsoleCmdPhysicalMemory函數(shù),學習pm”命令是 如何統(tǒng)計并輸出物理存儲器信息的。在閱讀的過程中需要注意下面幾點:在統(tǒng)計輸出物理存儲器信息之前要關(guān)閉中斷,之后要打開中斷,這樣可以防止在命令執(zhí) 行的過程中有其它線程分配或者釋放物理頁。全局變量MiTotalPageFrameCount保存了物理頁的總數(shù)。每個物理頁的大小是4KB由宏P(guān)AGE_SIZ定義。全局變量 MiZeroedPageCount和MiFreePag
3、eCount分別保存了零頁和空閑頁的數(shù)量。 計算已用物理頁數(shù)量的方法是:物理頁總數(shù)減去零頁數(shù)量,再減去空閑頁數(shù)量。按照下面的步驟執(zhí)行控制臺命令“pm”,查看物理存儲器的信息:1. 按F7生成在本實驗3.1中創(chuàng)建的EOS Kernel項目。2. 按F5啟動調(diào)試。3. 待EOSB動完畢,在EO腔制臺中輸入命令“ pm”后按回車。觀察命令執(zhí)行的結(jié)果,如圖 1 所示,可以了解當前物理存儲器的使用情況。圖i: pm命令的執(zhí)行結(jié)果3.3分配物理頁和釋放物理頁接下來,在pm命令函數(shù)中添加分配物理頁和釋放物理頁的代碼,單步調(diào)試管理物理頁 的方法。按照下面的步驟修改pm命令的源代碼:1. 使用OS Lab打開本
4、實驗文件夾中的 pm.c文件(將文件拖動到 OS Lab窗口中釋放即可打 開)。此文件中有一個修改后的 ConsoleCmdPhysicalMemory函數(shù),主要是在原有代碼的后 面增加了分配物理頁和釋放物理頁的代碼。2. 使用pm.c文件中ConsoleCmdPhysicalMemory函數(shù)的函數(shù)體替換 ke/sysproc.c 文件中 ConsoleCmdPhysicalMemory 函數(shù)的函數(shù)體。3. 按F7生成修改后的EOS Kernel項目。4. 按F5啟動調(diào)試。5. 待EOSB動完畢,在E0腔制臺中輸入命令pm”后按回車。觀察命令執(zhí)行的結(jié)果,如圖2所示,嘗試說明分配物理頁或者釋放物
5、理頁后物理存儲器的 變化情況。C OS Lab PC - Micropuft Virtual PC 2007匚I L fxI Action EAi t CD floppy HelpCONSOLE-1 (Press Ctrl+FlFB to switch console windou.,.) Ueleone to EOS shell>pnPage Count: 8176,Memory Count: 8176 * 4096 = 33488896 Byte *Zeroed Page Count: 0*Free Page Count: 71Z6.Used Page Count:1050.Afte
6、r Allocate One Page mmZeroed Page Count: GLFree Page Count: 7125.Used Page Court:1051.xxxnxx After Free One Page xxxx対xZeroed Page Count: 0.Free Page Count:7126.Used Page Count: 105G.圖2 :分配物理頁或者釋放物理頁后物理存儲器的變化情況。按照下面的步驟調(diào)試分配物理頁和釋放物理頁的過程:1. 結(jié)束之前的調(diào)試。2. 在ke/sysproc.c 文件的 ConsoleCmdPhysicalMemory 函數(shù)中,在調(diào)用
7、MiAllocateAnyPages 函數(shù)的代碼行(第1103行)添加一個斷點,在調(diào)用 MiFreePages函數(shù)的代碼行(第1115行) 添加一個斷點。3. 按F5啟動調(diào)試。4. 待EOSB動完畢,在EO腔制臺中輸入命令 pm”后按回車。5. pm命令開始執(zhí)行后,會在調(diào)用MiAllocateAnyPages函數(shù)的代碼行處中斷,按 F11調(diào)試進入MiAllocateAnyPages 函數(shù)。6. 按F10單步調(diào)試MiAllocateAnyPages函數(shù)的執(zhí)行過程,嘗試回答下面的問題:(1) 本次分配的物理頁的數(shù)量是多少?分配的物理頁的頁框號是多少?(2) 物理頁是從空閑頁鏈表中分配的?還是從零頁
8、鏈表中分配的?(3) 哪一行語句減少了空閑頁的數(shù)量?哪一行語句將剛剛分配的物理頁由空閑狀態(tài)修改 為忙狀態(tài)?(4) 繪制MiAllocateAnyPages函數(shù)的流程圖。答:(1)本次分配的物理頁的數(shù)量是1,分配的物理頁的頁框號是 0x409 ;(2)物理頁是從空閑頁鏈表中分配的,;(3) 第 226行 MiFreePageListHead = MiGetPfnDatabaseEntry(Pfn)->Next;和第 227行MiFreePageCou nt-;減少了空閑頁的數(shù)量,第 229行將剛剛分配的物理頁由空閑狀態(tài)修改為 忙狀態(tài);(4)0審、_十產(chǎn):f從空闡震分鏈表是香事奇碇>-
9、叫 從零貞鏈衣甘配、下 S,ir=*-NO_H 屮斷和1嵋除 |feMsmis mxh、宙ti怙就MiAllocateA nyPages 函數(shù)的流程圖監(jiān)觀 4 X昭1調(diào)用堆棧 4 X名稱值名稱_|NuiTib erU tPages M iFre eFagpC i:hjil tUniUnlbdSMi AllocateArLyFagee (NumberOfl'agee=Ux1 F£tlAtray=Uxa0008a50)地址:0x3001 a488C ore ol eCm ilPhys i c:ilM em ory (S t dlLmdl 6=0<2) 地址:UxSULl 1
10、92 e4ICiShellThn-ead爐吐泗泌汛匸血1工1地址:LIkSOOISSEc<J2JF EpTtn-e 注dS t ar tup l:;l 七也址:0:<8001 e2S a ? (:i 地址:i:iki:ii:ii:ii:ii:ii:ii:ii:i i:?c調(diào)試信息;11同查找結(jié)果1 同查找結(jié)果2 廂監(jiān)觀a輸出口斷點廖調(diào)用堆棧就緒行 1T4字 1Ins圖3 MiAllocateA nyPages 函數(shù)監(jiān)視和堆棧繼續(xù)調(diào)試釋放物理頁的過程:1. 按F5繼續(xù)執(zhí)行,會在調(diào)用MiFreePages函數(shù)的代碼行處中斷, 按F11調(diào)試進入MiFreePages 函數(shù)。2. 按F10
11、單步調(diào)試MiFreePages函數(shù)的執(zhí)行過程,嘗試回答下面的問題:(1) 本次釋放的物理頁的數(shù)量是多少?釋放的物理頁的頁框號是多少?釋放的物理頁是之 前分配的物理頁嗎?(2) 釋放的物理頁是被放入了空閑頁鏈表中?還是零頁鏈表中?(3) 繪制MiFreePages函數(shù)的流程圖。答:(1)本次釋放的物理頁的數(shù)量是1,釋放的物理頁的頁框號0x409,釋放 的物理頁是之前分配的物理頁;(2) 釋放的物理頁被放入了空閑頁鏈表中;(3) 見下圖:用的?YES-1修改砌押肛的狀態(tài)為窒»«井播入空HM我頭部7hrvi+f»< ?的返回STATLS_SUCCESSMiFree
12、Pages函數(shù)的流程圖監(jiān)觀1 4 X調(diào)用堆鐵 4 X名稱值名稱丨NumberOfPagesQkIMiFrsePagee (NumberOage*=囂 1 卜 PfstArrtysQ囂aJOOQSeSO)地址;0x8001 aBaTMi Free? ageC ouiitOxlbdBConsoleCmdPhysi calfilemory (51dH:irLdls=0k2)地址:0x8001936cKiShellThread (F ar am e ter=0x0)地址:0x8001852cF spThr e adS t ar tup ()地址:0x8001 e28 a<1電查找結(jié)果1 電查撈結(jié)
13、果m 1購脫視11總輸出1衛(wèi)斷點曲調(diào)用堆就J就緒行曲E字1Ins圖4 MiFreePages函數(shù)監(jiān)視和堆棧(問題:兩次一加一減? ?)結(jié)束此次調(diào)試。繼續(xù)修改pm命令的源代碼,嘗試在調(diào)用MiAllocateAnyPages函數(shù)時分配 多個物理頁,然后在調(diào)用MiFreePages函數(shù)時將分配的多個物理頁釋放,并練習調(diào)試這兩個函數(shù)在分配多個物理頁和釋放多個物理頁時執(zhí)行的過程。3.4閱讀控制臺命令“ vm”相關(guān)的源代碼,并查看其執(zhí)行的結(jié)果閱讀ke/sysproc.c 文件中第959行的ConsoleCmdVME數(shù),學習 Vm”命令是如何統(tǒng)計并輸 出進程的虛擬地址描述符信息的。在閱讀的過程中需要注意下面
14、幾點:與“ pm”命令輸出的是整個系統(tǒng)的物理存儲器的使用情況不同,Vm”命令輸出的是某個進程的虛擬地址描述符信息,所以“m”命令使用了一個參數(shù) 一一進程ID,用來指定一個進程。這個進程既可以是系統(tǒng)進程,也可以是用戶進程。在統(tǒng)計輸出指定進程的虛擬地址描述符信息之前要關(guān)閉中斷,之后要打開中斷,這樣可以防止在命令執(zhí)行的過程中有其它線程分配或者釋放虛擬頁。E0臊作系統(tǒng)的進程有4G的虛擬地址空間,但并不是所有的虛擬地址空間都使用虛擬地址描述符來管理,有一些地址空間是靜態(tài)的, 還有一些地址空間由其他的動態(tài)方式來管理(例如系統(tǒng)內(nèi)存池)。進程4G虛擬地址空間中由虛擬地址描述符所管理空間的低地址和高地址是固定的
15、,在這段地址空間中,如果有虛擬頁被占用,就會使用虛擬地址描述符來標識,并放入鏈表中管理。按照下面的步驟執(zhí)行控制臺命令”vm”,查看系統(tǒng)進程的虛擬地址描述符信息:1. 按F5啟動調(diào)試。2待EOSB動完畢,在E0腔制臺中輸入命令” pt ”后按回車?!?pt ”命令可以輸出當前系 統(tǒng)中的進程列表,其中系統(tǒng)進程的ID為1。卜OSLab PC -IicrospftVirtual PC 2007K1 Action Edi t CDFloppy HelpCONSOLE-1 (Press Ctrl+F1F8 to switchconso le u indowAUeleone to EOSshe 11>
16、pt茵xxwxHitx Process List (1Process)ID :Systen? Priorityi ThreadCoumti FrinaryThreadID1YZ410ZMSAmn TJiread L ist (10Thread)賊xxxmxxxID !System? !Priority! State !ParentFrocesxID StartAddress2¥0Ready10x800181?CZ9¥Z4Uaiting10X8OO15E9AZ1V24Running1Ox8O018Z6D22Y24Uaiting1Ox8001826DZ3YZ4Uaiting10
17、X8OO1BZ6DV24Uaitlng10X80018Z6D25Y24Uait ing10x8001826DZ6YZ4Uaiting10X8OO1B26D27¥24Waiting10X80018Z6D28>Y24Uaiting10x8001826DV<!1-j U 一丄-圖5輸入命令” pt ”3.在E0腔制臺中輸入命令 Vm 1”后按回車。觀察命令執(zhí)行的結(jié)果,如圖15-3所示,可以了解系統(tǒng)進程的虛擬地址描述符信息??谪蠀^(qū)OS L&b PC - Ixcrospft Virtual PC 2007CONSOLE-1 (Press Ctr 1+F1T8 to swit
18、ch console uindow,.)Action Edit CD Floppy HelpZ4¥Z4Uaiting10X80018Z&D25V24Uniting10x80018260Zb¥24Uaitin1Ox8001B26DZ7¥Z4Uaiting10X80018Z6D28¥24Uait10x800182601Total Upn from65536Q to 6574Q?.(OxAOQOOQOO - 0XA07FFFFF)litUadIncludeUpnFron655360to 655366.(0XA0O000GO -0XAGO00FFF)2
19、ItUadIncludeUpnFron655361to 655362.(OxAQOOlOOO -OxAOOOSFFF)3ttMadIncludeUpnFrom655365to 655366.(0xA0OO5O00 -OxAO0O6FFF)4 ItUadIncludeUpnFrom655367to 655368,(0XA0OO7OO0 -0XAGO0BFFF)5ttMadIncludeUpnFron655369to 655370.(0XAQOO90OQ -OxAOOOAFFF)6UMadIncludeUpnFrom655371to 655372.(0XA0G0BO00 -OxAOOOCFFF)7
20、n血IncludeUpviFrom655373to 655374.(OxA0OODOO0 -OxAOOGEFFF)8 ItyadIncludeUpnFrom655375to 655376.(OXA0OOF0OO -OxAOOlOFFF)9#UadIncludeUpnFrom655377to 655378.(0XA0O11O00 -OxAO012FFF)10# Uad Include 2 Upn From 655379 to 655380(OxAOQlSOOO - OxAOOHFFF) llflInclude 2 Upn From 655381 to 655382. (0xA00150Q0 -
21、OxAOOlbFFF)Tota L Upn Coumt: 204B» Al located Upn Count: 21.Free Upn Count: 202?.IIU圖6 :使用Vm”命令查看系統(tǒng)進程虛擬地址描述符的結(jié)果系統(tǒng)進程中由虛擬地址描述符所管理的虛擬頁只會分配給進程的句柄表(句柄表占用一個虛擬頁)和線程的堆棧(堆棧占用兩個虛擬頁)。結(jié)合之前pt ”命令輸出的進程和線程信息可知,當前系統(tǒng)中只有1個系統(tǒng)進程以及10個系統(tǒng)線程,所以在圖15-3中,1號描述符所包含的 一個虛擬頁即為系統(tǒng)進程的句柄表,而2到 11號這10個描述符所分別包含的兩個虛擬頁即為10個系統(tǒng)線程的堆棧。可以按
22、照下面的步驟執(zhí)行控制臺命令Vm”,查看當創(chuàng)建了一個應(yīng)用程序進程后,系統(tǒng)進程和應(yīng)用程序進程中虛擬地址描述符的信息:1. 在項目管理器"窗口中雙擊Floppy.img文件,使用FloppylmageEditor工具打開此軟盤鏡 像。2. 將本實驗文件夾中的LoopApp.exe文件添加到軟盤鏡像的根目錄中(將 LoopApp.exe文件拖動到FloppyImageEditor 窗口中釋放即可)。EOS應(yīng)用程序LoopApp.exe的源代碼可以參考本實驗文件夾中的 LoopApp.c文件。3. 點擊FloppyImageEditor工具欄上的保存按鈕,關(guān)閉該工具。4. 按F5啟動調(diào)試。5.
23、 待EOS啟動完畢,在EOS控制臺中輸入命令 A:LoopApp.exe ”后按回車。此時就使用 EOS 應(yīng)用程序文件LoopApp.exe創(chuàng)建了一個應(yīng)用程序進程,由于此進程執(zhí)行了一個死循環(huán),所以 此進程不會結(jié)束執(zhí)行,除非關(guān)閉虛擬機。6. 此時按Ctrl+F2切換到Con sole-2 ”,然后輸入命令pt ”后按回車。輸出的信息如圖15-4所示。其中ID為31的進程就是應(yīng)用程序進程,ID為33的線程就是應(yīng)用程序進程的主線程。7. 輸入命令“m 1 ”后按回車,可以查看系統(tǒng)進程中虛擬地址描述符的信息。輸出的信息如 圖6所示。與圖15-3比較可知,3號描述符所包含的一個虛擬頁即為應(yīng)用程序進程的句
24、柄表, 13號描述符所包含的兩個虛擬頁即為應(yīng)用程序進程主線程的堆棧。8. 輸入命令“m 31”后按回車,可以查看應(yīng)用程序進程中虛擬地址描述符的信息。輸出的信 息如圖7所示。»osLab PC -MicrosoftVirtual PC 20071 Action Edi tCDFloppy HelpCOMSOLE-Z(Fress Ctrl+F1F8 to switchconsole uindovi .)Ueleone toEOSshell>ptwmmmmmmm Process List (2Process ) mx xID 1System? 1Priorityi ThreadCou
25、nt1 PrimaryThread IDS nageMane1YZ410ZMXA31N8133A:LoopApp,exe"m" Thread L ist (11Thread) mmxwmxmmID !System? !Priorityi State IParent ProcessID 1StartAddressZVOReady10x9001817CzoYZ4Ua itinq1Qx8O015E9A21VZ4UaitiYif10x8001826D22V24Rinrniiig10x80018Z6D23Y24Uniting1Ox8O01826D24Y24Uaiting10x8001
26、826DZ5YZ4Uniting10X8G01826DZ6YZ4Ua iting1Qx8G018Z6D27VZ4Uniting1Ox8G018Z6D28V24Uniting10x8OO18Z6D33 >_N8Beady310x80QlE29CJ WL.1=圖7 :使用pt命令查看有應(yīng)用程序運行時進程和線程的信息。r離 OS Lab FC - WicrQPdft Virtual PC 200?B?1 Action EAi t CDFloppy HelpCOMSOLE-Z (Press Ctr1+F1FB to switch console windou,.)Z72833 >un 1T
27、otal Upn fromZ4Z48655360 toUniting Ualting Ready65740?.131QX8001826D 0x80018Z6D 0X8G01E29C(OxAOOOOOOO - OxA07FFFFF)lit 1 Ztt iJtt4 It 1I fitt 7tt 19tt lOtt11#12#13#Udd Uad Uad Uad Uad Uad Uad Uad UadUadUadUadUadInclude Include ; Inc Lude Include : Include ; Inc Lude Include : Include ; Include :Incl
28、ude lncluide IncludeInclude1 Upn2 Upvt1 Upn Z Upn Z UpvtZ Upn Z Upn2 Up¥i2 UpnUpnUpnUpnUpnZ22ZFron 655360Fron 655361Fron 655363Fron 655365Fron 655367Fron 655368From 655371From 655373Fron 655375i Froni Fromi Fromi Fron65537?655373655381655383655360. 65536Z. 655363 655366 655368.655370 655372 655
29、374.655376i 655378. i 655388.655382. i 655384.OxAOOOOFFF)OxA0002FFF)0XAG0O3FFF)QxA0006Frr)OxAOOOBFFF)0XA00OAFFF) oxAooocFrr) OxAOOOEFFF) 0XA001OFFF)OxAOOlZFFF)COxAOGOOOOO - i COxAOOOlOOO - i (OxAOO036G0 - i COxAOGOSOOO - i COxAOGO7OO0 - i (OxAGOOSQGO - i COxAOOOBOOO - i COxAOOODOOO - i (OxAOOOFQGO -
30、 i (OxAOO11000 - (OxAOO13©00 - OxA0014FFF) (0xA0015OOO - OxA0O16FFF) (OxAOO17000 - QXA0O18FFF)TotaI Upn Count: 2048.Al located Upn Count: 24. Free Upn Count: 2024.II圖&創(chuàng)建了一個應(yīng)用程序進程后,系統(tǒng)進程中虛擬地址描述符的信息。JlLU bU 1MJUIIb I1.U «Al located Upn Count: 24.Free Upn Count: 20Z4.>uin 31Total Upn fr
31、om 16 to 524271. COx10000 - &x?FFEFFFF)ltt Uad Include 5 Upn From 10Z4 to 10Z8. (0x400000 - 0x404FFF)TotaI Upn Count: 5Z4Z56.Al located Upn Count J 5*Free Upn Count: 524251.圖9:使用Vm”命令查看應(yīng)用程序進程虛擬地址描述符的結(jié)果。在進程的4G邏輯地址空間中,應(yīng)用程序進程可以自行管理低2G的用戶空間。從圖15-6中的信息可以得知,低 2G的用戶空間又被分為了三部分:OxOOOOOOOO-OxOOOOFFFF由16個虛
32、擬頁構(gòu)成的64KB靜態(tài)空間,用于捕捉對空指針的非法 訪問。0x00010000-0x7FFEFFFF由虛擬地址描述符管理的動態(tài)空間, 用于存儲應(yīng)用程序進程的 代碼和數(shù)據(jù)。圖15-6顯示應(yīng)用程序進程的代碼和數(shù)據(jù)占用了此空間中的5個虛擬頁,并且是用從應(yīng)用程序的基址0x00400000起始的。0x7FFF0000-0x7FFFFFFF由16個虛擬頁構(gòu)成的64KB靜態(tài)空間,用于捕捉對空指針的非法 訪問。為了加深對進程邏輯地址空間的理解,可以在控制臺 1至控制臺 7中都執(zhí)行命令”A:LoopApp.exe ",從而讓應(yīng)用程序創(chuàng)建 7個進程,然后在控制臺 8中執(zhí)行” pt "、” vm
33、i'等 命令,查看系統(tǒng)進程和應(yīng)用程序進程的虛擬地址描述符。3.5 在系統(tǒng)進程中分配虛擬頁和釋放虛擬頁接下來,在vm命令函數(shù)中添加分配虛擬頁和釋放虛擬頁的代碼,單步調(diào)試管理虛擬頁 的方法。首先,按照下面的步驟修改vm命令的源代碼:1. 使用OSLab打開本實驗文件夾中的 vm.c文件(將文件拖動到 OSLab窗口中釋放即可打開)。 此文件中有一個修改后的 ConsoleCmdVI函數(shù),主要是在原有代碼的后面增加了分配虛擬頁和 釋放物理頁的代碼。2. 使用vm.c文件中ConsoleCmdVM函數(shù)的函數(shù)體替換ke/sysproc.c 文件中ConsoleCmdVM函數(shù) 的函數(shù)體。3. 按F
34、7生成修改后的EOS Kernel項目。4. 按F5啟動調(diào)試。5. 待EOSB動完畢,在E0腔制臺中輸入命令 “m 1 ”后按回車。命令執(zhí)行的結(jié)果會同時轉(zhuǎn)儲在 “輸出”窗口中, 內(nèi)容如圖 15-7所示。 嘗試說明分配虛擬頁 或者釋放虛擬頁后虛擬地址描述符以及物理存儲器的變化情況。OS L&b PC - Ixcrospft Virtual PC 2007Action Edit CD Floppy HelpCONSOLE-1 (Press Ctr 1+F1T8 to switch console uindow,.,) Zeroed Physical Page Count: 0*Free P
35、hys ica1 Page Count: 7126.address: OxA00Q3OOO.Size: 0x1000*lit2 It3tt樹5 It6tt748 It9#Uad Uad Uad UadUad UadUad Uad UadInclude Include Include Include Include Include Include Include IncludeUpn Upn Upn Upn Upn Upn Upn Upn UpnFron Fron From Fron Fron From From Fron From65536065536165536565536765536965
36、5371655373655375655377to to to to to to to to to655360. 65536Z 655366. 655368. 655370 655372. 655374. 6553?& 655378.(0XAOOOGG0O (OXAQ0O1OO0 (OxA0O05O0O (0XA0OG7OOQ (OxAO0O9OOQ (OxAOOOBOOO (0XA00OD0GQ (OxAOOOFOOQ (OxAOOllOOO0XAOOO0FFF) OxAOOOSFFF) OxAO0O6FFF) OxAGOQBFFF) OxAOOOAFFF) OxAOOOCFFF) 0
37、XA0O0EFFF) OxAOOlQFFF) OxAO012FFF)10# Uad Include 2 Upn From 655379 to 砧5380» (0XAO013O0O - OxAOOHFFF) llil 悶直 Include 2 Upn From 655381 to 655382. (OxAOOlSOOO - OxAOOlbFFDAllocated Upn Count« 21. Free Upn Count: Z0Z7*Zeroed Physical Faqe Count: 0. Free Physical Page Count: ?1Z6,IIU圖10命令執(zhí)行
38、情況Total Vpn from 655360 to 657407. (OxAOOOOOOO - 0xA07FFFFF)1# Vad Include 1 Vpn From 655360 to 655360. (0xA0000000 - 0xA0000FFF) 2# Vad In elude 2 Vpn From 655361 to 655362. (0xA0001000 - 0xA0002FFF) 3# Vad Include 2 Vpn From 655365 to 655366. (0xA0005000 - 0xA0006FFF) 4# Vad Include2Vpn From655367
39、 to 655368.(0xA0007000 - 0xA0008FFF)5# Vad Include2Vpn From655369 to 655370.(0xA0009000 - 0xA000AFFF)6# Vad Include2Vpn From655371 to 655372.(0xA000B000 - 0xA000CFFF)7# Vad Include2Vpn From655373 to 655374.(0xA000D000 - 0xA000EFFF)8# Vad In clude 2 Vpn From 655375 to 655376. (0xA000F000 - 0xA0010FFF
40、) 9# Vad In clude 2 Vpn From 655377 to 655378. (0xA0011000 - 0xA0012FFF) 10# Vad In clude 2 Vpn From 655379 to 655380. (0xA0013000 - 0xA0014FFF) 11# Vad In clude 2 Vpn From 655381 to 655382. (0xA0015000 - 0xA0016FFF) Total Vpn Cou nt: 2048.Allocated Vpn Count: 21.Free Vpn Cou nt: 2027.Zeroed Physica
41、l Page Count: 0.Free Physical Page Count: 7126.New VM's base address: 0xA0003000. Size: 0x1000.1# Vad Include 1 Vpn From 655360 to 655360. (0xA0000000 - 0xA0000FFF)2# Vad Include 2 Vpn From 655361 to 655362. (0xA0001000 - 0xA0002FFF) 3# Vad Include 1 Vpn From 655363 to 655363. (0xA0003000 - 0xA0
42、003FFF) 4# Vad Include 2 Vpn From 655365 to 655366. (0xA0005000 - 0xA0006FFF) 5# Vad Include 2 Vpn From 655367 to 655368. (0xA0007000 - 0xA0008FFF) 6# Vad Include 2 Vpn From 655369 to 655370. (0xA0009000 - 0xA000AFFF) 7# Vad Include 2 Vpn From 655371 to 655372. (0xA000B000 - 0xA000CFFF) 8# Vad Inclu
43、de 2 Vpn From 655373 to 655374. (0xA000D000 - 0xA000EFFF) 9# Vad Include 2 Vpn From 655375 to 655376. (0xA000F000 - 0xA0010FFF) 10# Vad Include 2 Vpn From 655377 to 655378. (0xA0011000 - 0xA0012FFF) 11# Vad Include 2 Vpn From 655379 to 655380. (0xA0013000 - 0xA0014FFF) 12# Vad Include 2 Vpn From 655
44、381 to 655382. (0xA0015000 - 0xA0016FFF) Allocated Vpn Count: 22.Free Vpn Count: 2026.Zeroed Physical Page Count: 0.Free Physical Page Count: 7126.Free VM's base address: 0xA0003000. Size: 0x1000.1# Vad Include 1 Vpn From 655360 to 655360. (0xA0000000 - 0xA0000FFF) 2# Vad Include 2 Vpn From 6553
45、61 to 655362. (0xA0001000 - 0xA0002FFF) 3# Vad Include 2 Vpn From 655365 to 655366. (0xA0005000 - 0xA0006FFF) 4# Vad Include 2 Vpn From 655367 to 655368. (0xA0007000 - 0xA0008FFF) 5# Vad Include 2 Vpn From 655369 to 655370. (0xA0009000 - 0xA000AFFF) 6# Vad Include 2 Vpn From 655371 to 655372. (0xA00
46、0B000 - 0xA000CFFF) 7# Vad Include 2 Vpn From 655373 to 655374. (0xA000D000 - 0xA000EFFF) 8# Vad Include 2 Vpn From 655375 to 655376. (0xA000F000 - 0xA0010FFF) 9# Vad Include 2 Vpn From 655377 to 655378. (0xA0011000 - 0xA0012FFF) 10# Vad Include 2 Vpn From 655379 to 655380. (0xA0013000 - 0xA0014FFF)
47、 11# Vad Include 2 Vpn From 655381 to 655382. (0xA0015000 - 0xA0016FFF) Allocated Vpn Count: 21.Free Vpn Count: 2027.Zeroed Physical Page Count: 0.Free Physical Page Count: 7126.圖15-7 :分配虛擬頁或者釋放虛擬頁后虛擬地址描述符及物理存儲器的變化情況。函數(shù)的代1147 行)1. 在ke/sysproc.c 文件的 ConsoleCmdV函數(shù)中,在調(diào)用 MmAllocateVirtualMemory 碼行(第 108
48、2行)添加一個斷點,在調(diào)用 MmFreeVirtualMemory 函數(shù)的代碼行(第 添加一個斷點。2. 按F5啟動調(diào)試。3. 待EOSB動完畢,在EO腔制臺中輸入命令 “m 1”后按回車。 OS Lab PC - WicrQPdft Virtual PC 200?冃岡1 Action EAi t CDFloppy HelpCONSOLE-1 (Press Ctr1+F1FB to switch console window.,.) Ueleone to EOS shell>um 1Total Upn from 655360 to 65740?. (QxAOOUOGOO - GxAOVF
49、FFFF)lttVadIncludeUpvtFron655360to655360.COxAOOOOOOO -OxAOOOOFFF)ZttUadIncludeUpnFron655361to655362.(exAEmieoo -QxAGOOZFFF)3 ItUadIncludeUpnFron655365to655366.(OxAOOOSOOO -QxAQQOftFFF)4ttVadIncludeUpnFron655367to655368.COxAOOO7OO0 -OxAO0O8FFF)5ttUadIncludeUpnFron655369to655370(0x0009900 -0XA00OAFFF)
50、6ttUadIncludeUpnFrom655371to655372.(OxAOOOBOOO -QxAQQOCFFF)7ttVadIncludeUpnFron655373to655374.COxAOOODOOO -OxAOOOEFFF)BitUadIncludeUpnFron655375to655376cexAeooFoeo -0XA001OFFF)3UUadIncludeUpnFroh655377to655378.(OxAGO11000 -0XA0Q12FFF)10# Uad Include 2 Upn From 655373 to 655380. (0xAOO13OOO - OxA0O14
51、FFF) 111* Uad Include 2 Upn From 655381 to 655382« (0xA0015GOG - OxA0O16FFF)Total Upn Count: 2048.Hl located Upn Count: 21.Free Upn Count: 20Z7 4Zeroed Physical Page Count: 0* Free Physical Page Count: ?1Z6.圖11輸入命令 vm 1 ”4. vm命令開始執(zhí)行后,會在調(diào)用MmAllocateVirtualMemory 函數(shù)的代碼行處中斷。此時要注意參數(shù) BaseAddress 和 R
52、egionSize 初始化的值。按 F11 調(diào)試進入 MmAllocateVirtualMemory 函 數(shù)。圖 11 進入 MmAllocateVirtualMemory 函數(shù)前進入函數(shù)后:圖 12 進入 MmAllocateVirtualMemory 函數(shù)后5.按F10單步調(diào)試MmAllocateVirtualMemory 函數(shù)的執(zhí)行過程,嘗試回答下面的問題:(1)分配的虛擬頁的起始地址是多少?分配的虛擬頁的數(shù)量是多少?它們和參數(shù)BaseAddress和RegionSize初始化的值有什么樣的關(guān)系?(2)分配虛擬頁的同時有為虛擬頁映射實際的物理頁嗎?這是由哪個參數(shù)決定的? 分配的虛擬頁是在
53、系統(tǒng)地址空間(高2G還是在用戶地址空間(低2G)?這是由哪個參數(shù)決定的?(4)參考MiReserveAddressRegion函數(shù)的定義和注釋,說明該函數(shù)的功能。繼續(xù)調(diào)試釋放虛擬頁的過程:答:(1)分配的虛擬頁的起始地址是0xa0003000,分配的虛擬頁的數(shù)量是1,BaseAddress和RegionSize初始化的值是期望保留或者提交的地址區(qū)域的起始地址和大小;(2) 分配虛擬頁的同時有為虛擬頁映射實際的物理頁,這是由第三個參數(shù)Allocati on Type 決定的;(3) 分配的虛擬頁是在系統(tǒng)地址空間(高2G),這是由第四個參數(shù) SystemVirtual決定的;(4)MiReserveAddressRegion函數(shù)的功能是保留一段虛擬地址區(qū)域。1. 按F5繼續(xù)執(zhí)行,會在調(diào)用 MmFreeVirtualMemory函數(shù)的代碼行處中斷。此時要注意參數(shù)BaseAddr
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版微粒貸逾期8萬元債權(quán)清收合同3篇
- 2025年度木工工藝技術(shù)專利授權(quán)使用合同4篇
- 2025年度個人助學貸款質(zhì)押擔保合同書4篇
- 四川省瀘州市納溪區(qū)納溪中學集團校聯(lián)考2024-2025學年九年級上學期1月期末道德與法治試題(含答案)
- 2025版小學校租賃合同附加文化活動舉辦協(xié)議2篇
- 二零二五年度木結(jié)構(gòu)建筑清包施工合同書7篇
- 安徽省黃山市高三年級第二次質(zhì)量檢測語文試題(含答案)
- 2025版新型環(huán)保材料木材采購合同模板4篇
- 2025年度個人合同糾紛解決欠款合同模板4篇
- 第三節(jié)預(yù)防策略與措施流行病學16課件講解
- 二零二五年度無人駕駛車輛測試合同免責協(xié)議書
- 2025年湖北華中科技大學招聘實驗技術(shù)人員52名歷年高頻重點提升(共500題)附帶答案詳解
- 高三日語一輪復(fù)習助詞「と」的用法課件
- 毛渣采購合同范例
- 2023中華護理學會團體標準-注射相關(guān)感染預(yù)防與控制
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點分布匯 總- 高考政治一輪復(fù)習
- 燃氣管道年度檢驗報告
- GB/T 44052-2024液壓傳動過濾器性能特性的標識
- 國際市場營銷環(huán)境案例分析
- 美國租車自駕-中國駕照英文翻譯
評論
0/150
提交評論