安徽工業(yè)大學(xué)操作系統(tǒng)實驗報告.doc_第1頁
安徽工業(yè)大學(xué)操作系統(tǒng)實驗報告.doc_第2頁
安徽工業(yè)大學(xué)操作系統(tǒng)實驗報告.doc_第3頁
安徽工業(yè)大學(xué)操作系統(tǒng)實驗報告.doc_第4頁
安徽工業(yè)大學(xué)操作系統(tǒng)實驗報告.doc_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

。操作系統(tǒng)教程實驗報告書專業(yè)班級物141班學(xué) 號149074353姓 名程裕博指導(dǎo)教師郭玉華安徽工業(yè)大學(xué)計算機1。實驗一 WINDOWS進程初識1、 實驗?zāi)康模?) 學(xué)會使用VC編寫基本的Win32 Consol Application(控制(2) 臺應(yīng)用程序)。(3) 掌握WINDOWS API的使用方法。(4) 編寫測試程序,理解用戶態(tài)運行和核心態(tài)運行。2、 實驗內(nèi)容和步驟(1)編寫基本的Win32 Consol Application步驟1:登錄進入Windows,啟動VC+ 6.0。步驟2:在“FILE”菜單中單擊“NEW”子菜單,在“projects”選項卡中選擇“Win32 Consol Application”,然后在“Project name”處輸入工程名,在“Location” 處輸入工程目錄。創(chuàng)建一個新的控制臺應(yīng)用程序工程。步驟3:在“FILE”菜單中單擊“NEW”子菜單,在“Files”選項卡中選擇“C+ Source File”, 然后在“File” 處輸入C/C+源程序的文件名。 步驟4:將清單1-1所示的程序清單復(fù)制到新創(chuàng)建的C/C+源程序中。編譯成可執(zhí)行文件。步驟5:在“開始”菜單中單擊“程序”-“附件”-“命令提示符”命令,進入Windows“命令提示符”窗口,然后進入工程目錄中的debug子目錄,執(zhí)行編譯好的可執(zhí)行程序:E:課程os課os實驗程序os11debughello.exe運行結(jié)果 (如果運行不成功,則可能的原因是什么?) :運行成功,截圖:(2)計算進程在核心態(tài)運行和用戶態(tài)運行的時間步驟1:按照(1)中的步驟創(chuàng)建一個新的“Win32 Consol Application”工程,然后將清單1-2中的程序拷貝過來,編譯成可執(zhí)行文件。步驟2: 在創(chuàng)建一個新的“Win32 Consol Application”工程,程序的參考程序如清單1-3所示,編譯成可執(zhí)行文件并執(zhí)行。步驟3:在“命令提示符”窗口中運行步驟1中生成的可執(zhí)行文件,測試步驟2中可執(zhí)行文件在核心態(tài)運行和用戶態(tài)運行的時間。E:課程os課os實驗程序os12debugtime TEST.exe步驟4:運行結(jié)果 (如果運行不成功,則可能的原因是什么?):process ID: 3716,EXE file:3.exe,%d in Kernel mode: 60步驟5:分別屏蔽While循環(huán)中的兩個for循環(huán),或調(diào)整兩個for循環(huán)的次數(shù),寫出運行結(jié)果。屏蔽i循環(huán):process ID: 1412,EXE file:3.exe,%d in Kernel mode: 62屏蔽j循環(huán):process ID: 1816,EXE file:3.exe,%d in Kernel mode: 34調(diào)整循環(huán)變量i的循環(huán)次數(shù):process ID: 2616,EXE file:3.exe,%d in Kernel mode: 64調(diào)整循環(huán)變量j的循環(huán)次數(shù):process ID: 1868,EXE file:3.exe,%d in Kernel mode: 503、 實驗結(jié)論對Win32 Consol Application有進一步的認識,WIN32 API也就是Windows 32平臺的應(yīng)用程序編程接口。用戶態(tài)運行和核心態(tài)運行,核心態(tài)就是一個是直接的代碼運行,即win32consol Application下代碼運行;而用戶態(tài)是在DOS下運行的,對編譯好的程序進行的運行,核心態(tài)速度較快,沒有太多的約束,而用戶態(tài)的運行需要時間較長,由于有相應(yīng)的約束。實驗二 進程管理1、實驗?zāi)康?) 通過創(chuàng)建進程、觀察正在運行的進程和終止進程的程序設(shè)計和調(diào)試操作,進一步熟悉操作系統(tǒng)的進程概念,理解Windows進程的“一生”。2) 通過閱讀和分析實驗程序,學(xué)習(xí)創(chuàng)建進程、觀察進程、終止進程以及父子進程同步的基本程序設(shè)計方法。2、實驗內(nèi)容和步驟 (1). 創(chuàng)建進程本實驗顯示了創(chuàng)建子進程的基本框架。該程序只是再一次地啟動自身,顯示它的系統(tǒng)進程ID和它在進程列表中的位置。步驟1:創(chuàng)建一個“Win32 Consol Application”工程,然后拷貝清單2-1中的程序,編譯成可執(zhí)行文件。步驟2:在“命令提示符”窗口運行步驟1中生成的可執(zhí)行文件。運行結(jié)果:范例:E:課程os課os實驗程序os11debugos21 (假設(shè)編譯生成的可執(zhí)行文件是os21.exe)ProcessID:3012, Clone ID:0Process ID:2748, Clone ID:1Process ID:4044, Clone ID:2Process ID:2896, Clone ID:3Process ID:1588, Clone ID:4Process ID:2144, Clone ID:5按下ctrl+alt+del,調(diào)用windows的任務(wù)管理器,記錄進程相關(guān)的行為屬性:步驟3:在“命令提示符”窗口加入?yún)?shù)重新運行生成的可執(zhí)行文件。運行結(jié)果:范例:E:課程os課os實驗程序os11debugos21 3(假設(shè)編譯生成的可執(zhí)行文件是os21.exe)Process ID:3112, Clone ID:3Process ID:1380, Clone ID:4Process ID:3576, Clone ID:5按下ctrl+alt+del,調(diào)用windows的任務(wù)管理器,記錄進程相關(guān)的行為屬性:步驟4:修改清單2-1中的程序,將nClone的定義和初始化方法按程序注釋中的修改方法進行修改,編譯成可執(zhí)行文件(執(zhí)行前請先保存已經(jīng)完成的工作)。再按步驟2中的方式運行,看看結(jié)果會有什么不一樣。運行結(jié)果:Process ID:3112, Clone ID:3Process ID:1380, Clone ID:4Process ID:3576, Clone ID:5從中你可以得出什么結(jié)論:nClone的作用:控制ID的起始值,并控制其輸出窗口的數(shù)量。_ 變量的定義和初始化方法(位置)對程序的執(zhí)行結(jié)果有影響嗎?為什么?有影響,變量的定義影響了程序的結(jié)果數(shù)目,還影響了ID的其實位置,由于變量的初始化使程序的循環(huán)次數(shù)發(fā)生改變,直接改變了結(jié)果,所以結(jié)果由變量的不同而不同。(2). 父子進程的簡單通信及終止進程步驟1:創(chuàng)建一個“Win32 Consol Application”工程,然后拷貝清單2-2中的程序,編譯成可執(zhí)行文件。步驟2:在VC的工具欄單擊“Execute Program”(執(zhí)行程序) 按鈕,或者按Ctrl + F5鍵,或者在“命令提示符”窗口運行步驟1中生成的可執(zhí)行文件。運行結(jié)果:范例:E:課程os課os實驗程序os11debugos22 (假設(shè)編譯生成的可執(zhí)行文件是os22.exe)步驟3:按源程序中注釋中的提示,修改源程序2-2,編譯執(zhí)行(執(zhí)行前請先保存已經(jīng)完成的工作)。運行結(jié)果: 死循環(huán)在程序中加入跟蹤語句,或調(diào)試運行程序,同時參考MSDN中的幫助文件CreateProcess()的使用方法,理解父子進程如何傳遞參數(shù)。給出程序執(zhí)行過程的大概描述:產(chǎn)生的應(yīng)用程序的名稱 (本EXE文件), 告訴其行為像一個子進程的標志,不繼承句柄,使用新的控制臺,新的環(huán)境,啟動信息,返回的進程信息。步驟4:填空 CreateProcess() 函數(shù)有_8個核心參數(shù)?本實驗程序中設(shè)置的各個參數(shù)的值是:a. szFilename;b. szCmdLine,;c. NULL;d. NULL;e. FALSE;f. CREATE_NEW_CONSOLE;g. NULL;h. NULL。步驟5:按源程序中注釋中的提示,修改源程序2-2,編譯執(zhí)行。運行結(jié)果: 步驟6:參考MSDN中的幫助文件CreateMutex()、OpenMutex()、ReleaseMutex()和WaitForSingleObject()的使用方法,理解父子進程如何利用互斥體進行同步的。給出父子進程同步過程的一個大概描述: 首先,進程創(chuàng)建一個互斥體,打開互斥體,如遇到互斥,則進行處理,處理完后,釋放互斥體,下面便是進程等待下一個要處理的項目。3、 實驗結(jié)論每個進程都從調(diào)用CreateProcess() API函數(shù)開始,該函數(shù)的任務(wù)是在對象管理器子系統(tǒng)內(nèi)初始化進程對象。每一進程都以調(diào)用ExitProcess() 或TerminateProcess() API函數(shù)終止。通常應(yīng)用程序的框架負責(zé)調(diào)用 ExitProcess() 函數(shù)。進程都是有始有終,其中有中斷,還有處理進程間互斥的函數(shù),已達到進程的完成后自然終止。實驗三 進程同步的經(jīng)典算法1、實驗?zāi)康?) 回顧系統(tǒng)進程、線程的有關(guān)概念,加深對Windows 2000線程的理解。2) 了解互斥體對象,通過對生產(chǎn)者消費者等進程間同步與互斥經(jīng)典算法的實現(xiàn),加深對P、V原語以及利用P、V原語進行進程間同步與互斥操作的理解。2、實驗內(nèi)容和步驟 (1). 生產(chǎn)者消費者問題步驟1:創(chuàng)建一個“Win32 Consol Application”工程,然后拷貝清單3-1中的程序,編譯成可執(zhí)行文件。步驟2:在“命令提示符”窗口運行步驟1中生成的可執(zhí)行文件。運行結(jié)果:范例:E:課程os課os實驗程序os11debugos31 (假設(shè)編譯生成的可執(zhí)行文件是os31.exe)步驟3:仔細閱讀源程序,找出創(chuàng)建線程的WINDOWS API函數(shù),回答下列問題:線程的第一個執(zhí)行函數(shù)是什么(從哪里開始執(zhí)行)?它位于創(chuàng)建線程的API函數(shù)的第幾個參數(shù)中?第一個執(zhí)行函數(shù)是:DWORD WINAPI Producer(LPVOID lpPara)Produce();它位于創(chuàng)建線程的API函數(shù)的第3個參數(shù)中。步驟4:修改清單3-1中的程序,調(diào)整生產(chǎn)者線程和消費者線程的個數(shù),使得消費者數(shù)目大與生產(chǎn)者,看看結(jié)果有何不同。運行結(jié)果:從中你可以得出什么結(jié)論:生產(chǎn)速度快,生產(chǎn)者經(jīng)常等待消費者;反之,消費者經(jīng)常等待。步驟5:修改清單3-1中的程序,按程序注釋中的說明修改信號量EmptySemaphore的初始化方法,看看結(jié)果有何不同。運行結(jié)果:步驟6:根據(jù)步驟4的結(jié)果,并查看MSDN,回答下列問題1)CreateMutex中有幾個參數(shù),各代表什么含義。答:有三個參數(shù).1. LPSECURITY_ATTRIBUTES lpMutexAttributes 代表安全屬性的指針2. BOOL bInitialOwner代表布爾bInitialOwner3. LPCTSTR lpName 代表LPCTSTR類型lpName2)CreateSemaphore中有幾個參數(shù),各代表什么含義,信號量的初值在第幾個參數(shù)中。四個: lpSemaphoreAttributes SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結(jié)構(gòu),或傳遞零值表示采用不允許繼承的默認描述符。該參數(shù)定義了信號機的安全特性 ;lInitialCount Long,設(shè)置信號機的初始計數(shù)??稍O(shè)置零到lMaximumCount之間的一個值 ;lMaximumCount Long,設(shè)置信號機的最大計數(shù) ;lpName String,指定信號機對象的名稱。3)程序中P、V原語所對應(yīng)的實際Windows API函數(shù)是什么,寫出這幾條語句。HANDLE Mutex; HANDLE FullSemaphore; HANDLE EmptySemaphore; DWORD WINAPI Producer(LPVOID); DWORD WINAPI Consumer(LPVOID);4)CreateMutex能用CreateSemaphore替代嗎?嘗試修改程序3-1,將信號量Mutex完全用CreateSemaphore及相關(guān)函數(shù)實現(xiàn)。寫出要修改的語句:可以Mutex=CreateSemaphore(NULL,false,false,NULL);(2). 讀者寫者問題根據(jù)實驗(1)中所熟悉的P、V原語對應(yīng)的實際Windows API函數(shù),并參考教材中讀者、寫者問題的算法原理,嘗試利用Windows API函數(shù)實現(xiàn)第一類讀者寫者問題(讀者優(yōu)先)。3、 實驗結(jié)論將信號量看作生產(chǎn)或消費的一個對象,對信號量的生成和銷毀操作如同P操作和V操作一樣,生成者消費者問題模擬的就是對信號量的生成和銷毀,其中牽涉了信號量的同步,這也是該問題為何稱為同步的經(jīng)典問題的原因。實驗四 存儲管理1、 實驗?zāi)康模?) 通過對Windows 2000“任務(wù)管理器”、“計算機管理”、“我的電腦”屬性、“系統(tǒng)信息”、“系統(tǒng)監(jiān)視器”等程序的應(yīng)用,學(xué)習(xí)如何察看和調(diào)整Windows的內(nèi)存性能,加深對操作系統(tǒng)存儲管理、虛擬存儲管理等理論知識的理解。(2) 了解Windows 2000的內(nèi)存結(jié)構(gòu)和虛擬內(nèi)存的管理,理解進程的虛擬內(nèi)存空間和物理內(nèi)存的映射關(guān)系。2、 實驗內(nèi)容和步驟(1)觀察和調(diào)整Windows 2000/XP的內(nèi)存性能。步驟1:閱讀“背景知識”,請回答:1) 什么是“分頁過程”?_分頁就是將信息從主內(nèi)存移動到磁盤進行臨時存儲的過程2) 什么是“內(nèi)存共享”?_應(yīng)用程序經(jīng)常需要彼此通信和共享信息。_3) 什么是“未分頁合并內(nèi)存”和“分頁合并內(nèi)存”?Windows 2000中,未分頁合并內(nèi)存的最大限制是多少?分頁合并內(nèi)存是存儲遲早需要的可分頁代碼或數(shù)據(jù)的內(nèi)存部分。未分頁合并內(nèi)存包含必須駐留在內(nèi)存中的占用代碼或數(shù)據(jù)。4) Windows 2000分頁文件默認設(shè)置的最小容量和最大容量是多少?Windows 2000使用內(nèi)存數(shù)量的1.5倍作為分頁文件的最小容量,這個最小容量的兩倍作為最大容量。步驟2:登錄進入Windows 2000 Professional。步驟3:查看包含多個實例的應(yīng)用程序的內(nèi)存需求。1) 啟動想要監(jiān)視的應(yīng)用程序,例如Word。2) 右鍵單擊任務(wù)欄以啟動“任務(wù)管理器”。3) 在“Windows任務(wù)管理器”對話框中選定“進程”選項卡。4) 向下滾動在系統(tǒng)上運行的進程列表,查找想要監(jiān)視的應(yīng)用程序。請在表4-3中記錄:表4-3 實驗記錄映像名稱PIDCPUCPU時間內(nèi)存使用WINWORD368000:00:3823.440“內(nèi)存使用”列顯示了該應(yīng)用程序的一個實例正在使用的內(nèi)存數(shù)量。5) 啟動應(yīng)用程序的另一個實例并觀察它的內(nèi)存需求。請描述使用第二個實例占用的內(nèi)存與使用第一個實例時的內(nèi)存對比情況:印像名稱:Explorer.EXE_pid:1652_cpu:0:00:26_內(nèi)存使用:29,028_步驟4:未分頁合并內(nèi)存。估算未分頁合并內(nèi)存大小的最簡單方法是使用“任務(wù)管理器”。未分頁合并內(nèi)存的估計值顯示在“任務(wù)管理器”的“性能”選項卡的“核心內(nèi)存”部分。總數(shù) (K) :_82076_分頁數(shù):_34900_未分頁 (K) :_47176_還可以使用“任務(wù)管理器”查看一個獨立進程正在使用的未分頁合并內(nèi)存數(shù)量和分頁合并內(nèi)存數(shù)量。操作步驟如下:1) 單擊“Windows任務(wù)管理器”的“進程”選項卡,然后從“查看”菜單中選擇“選擇列”命令,顯示“進程”選項卡的可查看選項。2) 在“選擇列”對話框中,選定“頁面緩沖池”選項和“非頁面緩沖池”選項旁邊的復(fù)選框,然后單擊“確定”按鈕。返回Windows 2000“任務(wù)管理器”的“進程”選項卡時,將看到其中增加顯示了各個進程占用的分頁合并內(nèi)存數(shù)量和未分頁合并內(nèi)存數(shù)量。仍以剛才打開觀察的應(yīng)用程序 (例如Word) 為例,請在表4-4中記錄:表4-4 實驗記錄映像名稱PID內(nèi)存使用頁面緩沖池非頁面緩沖池WINWORD36823.63853016從性能的角度來看,未分頁合并內(nèi)存越多,可以加載到這個空間的數(shù)據(jù)就越多。擁有的物理內(nèi)存越多,未分頁合并內(nèi)存就越多。但未分頁合并內(nèi)存被限制為256MB,因此添加超出這個限制的內(nèi)存對未分頁合并內(nèi)存沒有影響。步驟5:提高分頁性能。在Windows 2000的安裝過程中,將使用連續(xù)的磁盤空間自動創(chuàng)建分頁文件(pagefile.sys) 。用戶可以事先監(jiān)視變化的內(nèi)存需求并正確配置分頁文件,使得當系統(tǒng)必須借助于分頁時的性能達到最高。雖然分頁文件一般都放在系統(tǒng)分區(qū)的根目錄下面,但這并不總是該文件的最佳位置。要想從分頁獲得最佳性能,應(yīng)該首先檢查系統(tǒng)的磁盤子系統(tǒng)的配置,以了解它是否有多個物理硬盤驅(qū)動器。1) 在“開始”菜單中單擊“設(shè)置” “控制面板”命令,雙擊“管理工具”圖標,再雙擊“計算機管理”圖標。2) 在“計算機管理”窗口的左格選擇“磁盤管理”管理單元來查看系統(tǒng)的磁盤配置。如果系統(tǒng)只有一個硬盤,那么建議應(yīng)該盡可能為系統(tǒng)配置額外的驅(qū)動器。這是因為:Windows 2000最多可以支持在多個驅(qū)動器上分布的16個獨立的分頁文件。為系統(tǒng)配置多個分頁文件可以實現(xiàn)對不同磁盤I/O請求的并行處理,這將大大提高I/O請求的分頁文件性能。請在表4-5中記錄:表4-5 實驗記錄卷布局類型文件系統(tǒng)容量狀態(tài)C:磁盤分區(qū)基本FAT3248.82G狀態(tài)良好(系統(tǒng))D:磁盤分區(qū)基本FAT3224.50G狀態(tài)良好(頁面文件)LENEVO_PART磁盤分區(qū)基本FAT32305MB狀態(tài)良好(EISA配置)步驟6:計算分頁文件的大小。要想更改分頁文件的位置或大小配置參數(shù),可按以下步驟進行:1) 右鍵單擊桌面上的“我的電腦”圖標并選定“屬性”。2) 在“高級”選項卡上單擊“性能選項”按鈕。3) 單擊對話框中的“虛擬內(nèi)存”區(qū)域中的“更改”按鈕。請記錄:所選驅(qū)動器 (C: ) 的頁面文件大?。候?qū)動器: _C: WINXP_可用空間: 23298MB初始大小 (MB) : 1524最大值 (MB) : 3048所選驅(qū)動器 (D: ) 的頁面文件大小:(如果有的話)驅(qū)動器: D: SOFTTWARE可用空間: 12925 MB所有驅(qū)動器頁面文件大小的總數(shù):允許的最小值: 2MB推薦: 1522 MB當前已分配: 1524MB4) 要想將另一個分頁文件添加到現(xiàn)有配置,在“虛擬內(nèi)存”對話框中選定一個還沒有分頁文件的驅(qū)動器,然后指定分頁文件的初始值和最大值 (以兆字節(jié)表示) ,單擊“設(shè)置”,然后單擊“確定”。5) 要想更改現(xiàn)有分頁文件的最大值和最小值,可選定分頁文件所在的驅(qū)動器。然后指定分頁文件的初始值和最大值,單擊“設(shè)置”按鈕,然后單擊“確定”按鈕。6) 在“性能選項”對話框中單擊“確定”按鈕。7) 單擊“確定”按鈕以關(guān)閉“系統(tǒng)特性”對話框。步驟7:使用任務(wù)管理器??梢允褂谩叭蝿?wù)管理器”來簡單地檢查分頁文件是否配置了正確容量。這樣可以實時提供系統(tǒng)正在使用分頁文件的方式以及其他重要系統(tǒng)信息的準確描述。通過右鍵單擊任務(wù)欄運行“任務(wù)管理器”,選定“性能”選項卡查看實時的系統(tǒng)統(tǒng)計數(shù)據(jù)。與分頁文件大小最有關(guān)的信息位于“認可用量”區(qū)域。這一區(qū)域顯示了認可“峰值”是否達到或超過了認可“限制”,以及它是否超過了系統(tǒng)上的物理內(nèi)存數(shù)量。認可“峰值”是指系統(tǒng)迄今為止向進程分配的最大物理內(nèi)存和虛擬內(nèi)存數(shù)量。請記錄:物理內(nèi)存 (K)總數(shù): 1039724可用數(shù): 517644系統(tǒng)緩存: 501940認可用量 (K)總數(shù): 859572限制: 2500780峰值: 1238956當系統(tǒng)遇到分頁活動增加的情況時,提交的內(nèi)存數(shù)量 (“認可總數(shù)”) 就會增加。一旦它達到了“認可限制”值,系統(tǒng)就需要擴展分頁文件。“認可限制”值指出在不必擴展分頁文件的情況下可以向內(nèi)存提交的虛擬內(nèi)存數(shù)量。因為目標是避免擴展分頁文件,所以必須保持“認可總數(shù)”和“認可限制”值相差較大。如果這兩個值接近了,那么系統(tǒng)必須動態(tài)增加分頁文件的大小?!叭蝿?wù)管理器”的“認可用量”區(qū)域顯示的信息還說明了系統(tǒng)的主內(nèi)存是否足以滿足系統(tǒng)執(zhí)行的任務(wù)。如果認可“總數(shù)”值經(jīng)常超過系統(tǒng)中的內(nèi)存數(shù)量,那么系統(tǒng)的物理內(nèi)存可能不足。(2)了解和檢測進程的虛擬內(nèi)存空間。步驟1:創(chuàng)建一個“Win32 Consol Application”工程,然后拷貝清單4-1中的程序,編譯成可執(zhí)行文件。步驟2:在VC的工具欄單擊“Execute Program”(執(zhí)行程序) 按鈕,或者按Ctrl + F5鍵,或者在“命令提示符”窗口運行步驟1中生成的可執(zhí)行文件。范例:E:課程os課os實驗程序os11debugos41 (假設(shè)編譯生成的可執(zhí)行文件是os41.exe)步驟3:根據(jù)運行結(jié)果,回答下列問題 虛擬內(nèi)存每頁容量為: 4.00KB 最小應(yīng)用地址: 0x00010000 最大應(yīng)用地址: 0x7ffeffff_ 當前可供應(yīng)用程序使用的內(nèi)存空間為: 1.99GB 當前計算機的實際內(nèi)存大小為: 0.99GB 理論上每個Windows應(yīng)用程序可以獨占的最大存儲空間是: 0.99GB提示:可供應(yīng)用程序使用的內(nèi)存空間實際上已經(jīng)減去了開頭與結(jié)尾兩個64KB的保護區(qū)。虛擬內(nèi)存空間中的64KB保護區(qū)是防止編程錯誤的一種Windows方式。任何對內(nèi)存中這一區(qū)域的訪問 (讀、寫、執(zhí)行) 都將引發(fā)一個錯誤陷阱,從而導(dǎo)致錯誤并終止程序的執(zhí)行。按committed、reserved、free等三種虛擬地址空間分別記錄實驗數(shù)據(jù)。其中“描述”是指對該組數(shù)據(jù)的簡單描述,例如,對下列一組數(shù)據(jù):00010000 00012000 Committed, READWRITE, Private可描述為:具有READWRITE權(quán)限的已調(diào)配私有內(nèi)存區(qū)。將系統(tǒng)當前的自由區(qū) (free) 虛擬地址空間填入表4-6中。表4-6 實驗記錄地址大小虛擬地址空間類型訪問權(quán)限描述00012000-0002000056.0 KBfreeNOACCESS00021000-0003000060.0 KBfreeNOACCESS00133000-0014000052.0 KBfreeNOACCESS00276000-0028000040.0 KBfreeNOACCESS002c1000-002d000060.0 KBfreeNOACCESS00311000-0032000060.0 KBfreeNOACCESS00326000-0033000040.0 KBfreeNOACCESS00371000-0038000060.0 KBfreeNOACCESS00391000-003a000060.0 KBfreeNOACCESS003a1000-003b000060.0 KBfreeNOACCESS003c3000-003d000052.0 KBfreeNOACCESS003e0000-00400000128 KBfreeNOACCESS00485000-0049000044.0 KBfreeNOACCESS00558000-0056000032.0 KBfreeNOACCESS00663000-0067000052.0 KBfreeNOACCESS00970000-62c200001.53 GBfreeNOACCESS62c29000-73fa0000275 MBfreeNOACCESS7400b000-7630000034.9 MBfreeNOACCESS7631d000-77be000024.7 MBfreeNOACCESS77c38000-77d10000864 KBfreeNOACCESS77e49000-77e5000028.0 KBfreeNOACCESS77ee2000-77ef000056.0 KBfreeNOACCESS77f39000-77f4000028.0 KBfreeNOACCESS77fb6000-77fc000040.0 KBfreeNOACCESS77fd1000-7c80000072.1 MBfreeNOACCESS提示:詳細記錄實驗數(shù)據(jù)在實驗活動中是必要的,但想想是否可以簡化記錄的辦法?將系統(tǒng)當前的已調(diào)配區(qū) (committed) 虛擬地址空間填入表4-7中。表4-7 實驗記錄地址大小虛擬地址空間類型訪問權(quán)限描述00010000-000120008.00 KBcommittedREADWRITE, Private00020000-000210004.00 KBcommittedREADWRITE, Private0012c000-0012d0004.00 KBcommittedGUARD, READWRITE, Private0012d000-0013000012.0 KBcommittedREADWRITE, Private00140000-0014500020.0 KBcommittedREADWRITE, Private00240000-0024600024.0 KBcommittedREADWRITE, Private00250000-0025300012.0 KBcommittedREADWRITE, Mapped00260000-0027600088.0 KBcommittedREADONLY, Mapped00280000-002c1000260 KBcommittedREADONLY, Mapped002d0000-00311000260 KBcommittedREADONLY, Mapped00320000-0032600024.0 KBcommittedREADONLY, Mapped00330000-00371000260 KBcommittedREADONLY, Mapped00380000-0038800032.0 KBcommittedREADWRITE, Private00390000-003910004.00 KBcommittedREADWRITE, Private003a0000-003a10004.00 KBcommittedREADWRITE, Private003b0000-003b400016.0 KBcommittedREADWRITE,Private003c0000-003c300012.0 KBcommittedREADONLY, Mapped003d0000-003d300012.0 KBcommittedREADWRITE,Private00400000-004010004.00 KBcommittedREADONLY, Image,Module: 1.exe00401000-00470000444 KBcommittedEXECUTE_READ, Image0047

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論