版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗3 Windows虛擬內(nèi)存(一)、虛擬內(nèi)存1 背景知識在Windows環(huán)境下,32位Windows系統(tǒng)中,232=4GB的虛擬地址空間被劃分成兩個部分:低端2GB提供給進程使用,高端2GB提供給系統(tǒng)使用。這意味著用戶的應用程序代碼,包括DLL以及進程使用的各種數(shù)據(jù)等,都裝在用戶進程地址空間內(nèi)(低端2GB)。用戶過程的虛擬地址空間也被分成三部分:1)虛擬內(nèi)存的已調(diào)配區(qū)(committed):具有備用的物理內(nèi)存,根據(jù)該區(qū)域設定的訪問權限,用戶可以進行寫、讀或在其中執(zhí)行程序等操作。2)虛擬內(nèi)存的保留區(qū)(reserved):沒有備用的物理內(nèi)存,但有一定的訪問權限o 3)虛擬內(nèi)存的自由區(qū)(free)
2、:不限定其用途,有相應的PAGE_NOACCESS權限。與虛擬內(nèi)存區(qū)相關的訪問權限告知系統(tǒng)進程可在內(nèi)存中進行何種類型的操作。例如,用戶不能在只有PAGE_READONLY權限的區(qū)域上進行寫操作或執(zhí)行程序;也不能在只有PAGE_EXECUTE權限的區(qū)域里進行讀、寫操作。而具有PAGE_NOACCESS權限的特殊區(qū)域,則意味著不允許進程對其地址進行任何操作。在進程裝入之前,整個虛擬內(nèi)存的地址空間都被設置為只有PAGE_NOACCESS權限的自由區(qū)域。當系統(tǒng)裝入進程代碼和數(shù)據(jù)后,才將內(nèi)存地址的空間標記為已調(diào)配區(qū)或保留區(qū),并將諸如EXECUTE、READWRITE和READONLY的權限與這些區(qū)域相關
3、聯(lián)。如表1所示,給出了MEMORY_BASIC_INFORMATION的結構,此數(shù)據(jù)描述了進程虛擬內(nèi)存空間中一組虛擬內(nèi)存頁面的當前狀態(tài),其中State項表明這些區(qū)域是否為自由區(qū)、已調(diào)配區(qū)或保留區(qū);Protect項則包含了Windows系統(tǒng)為這些區(qū)域添加了何種訪問保護;Type項則表明這些區(qū)域是可執(zhí)行圖像、內(nèi)存映射文件還是簡單的私有內(nèi)存。VirtualQueryEX()API能讓用戶在指定的進程中,對虛擬內(nèi)存地址的大小和屬性進行檢測。Windows還提供了一整套能使用戶精確控制應用程序的虛擬地址空間的虛擬內(nèi)存API。一些用于虛擬內(nèi)存操作及檢測的API如表2所示。表1 MEMORY_BASIC_I
4、NFORMATION結構的成員成員名稱目 的PVOID BaseAddress虛擬內(nèi)存區(qū)域開始處的指針PVOID AllocationBase如果這個特定的區(qū)域為子分配區(qū)的話,則為虛擬內(nèi)存外面區(qū)域的指針;否則,此值與BaseAddress相同DWORD AllocationProtect虛擬內(nèi)存最初分配區(qū)域的保護屬性。其可能值包括:PAGE_NOACCESS,PAGE_READONLY,PAGE_READWRITE和PAGE_EXECUTE_READDWORD RegionSize 虛擬內(nèi)存區(qū)域的字節(jié)數(shù)DWORD State 區(qū)域的當前分配狀態(tài)。其可能值為MEM_COMMIT,MEM_FREE
5、和MEM_RESERVEDW()RD Protect虛擬內(nèi)存當前區(qū)域的保護屬性。可能值與AllocationProtect成員的相同DWORD Type虛擬內(nèi)存區(qū)域中出現(xiàn)的頁面類型。可能值為MEM_IMAGE,MEM_ MAPPED和MEM_PRIVATE表2 虛擬內(nèi)存的APIAPl名稱描 述VirtualQueryEx()通過填充MEMORY_BASIC_INFORMATION結構檢測進程內(nèi)虛擬內(nèi)存的區(qū)域VirtuaAlloc()保留或調(diào)配進程的部分虛擬內(nèi)存,設置分配和保護標志VirtualFree()釋放或收回應用程序使用的部分虛擬地址VirtualProtect()改變虛擬內(nèi)存區(qū)域保護規(guī)
6、范VirtualLock() 防止系統(tǒng)將虛擬內(nèi)存區(qū)域通過系統(tǒng)交換到頁面文件中VirtualUnlock()釋放虛擬內(nèi)存的鎖定區(qū)域,必要時,允許系統(tǒng)將其交換到頁面文件中 提供虛擬內(nèi)存分配功能的是VinualAlloc()API。該API支持用戶向系統(tǒng)要求新的虛擬內(nèi)存或改變已分配內(nèi)存的當前狀態(tài)。用戶若想通過VirtualAlloc()函數(shù)使用虛擬內(nèi)存,可以采用兩種方式通知系統(tǒng):1)簡單地將內(nèi)存內(nèi)容保存在地址空間內(nèi)。2)請求系統(tǒng)返回帶有物理存儲區(qū)(RAM的空間或換頁文件)的部分地址空間。用戶可以用flAllocation Type參數(shù)(commit和reserve)來定義這些方式,用戶可以通知Win
7、dows按只讀、讀寫、不可讀寫、執(zhí)行或特殊方式來處理新的虛擬內(nèi)存。與VirtualAlloc()函數(shù)對應的是VirtualFree()函數(shù),其作用是釋放虛擬內(nèi)存中的已調(diào)配頁或保留頁。用戶可利用dwFreeType參數(shù)將已調(diào)配頁修改成保留頁屬性。VirtualProtect()是VirtualAlloc()的一個輔助函數(shù),利用它可以改變虛擬內(nèi)存區(qū)的保護規(guī)范。2 實驗目的1)通過實驗了解Windows內(nèi)存的使用,學習如何在應用程序中管理內(nèi)存,體會Windows應用程序內(nèi)存的簡單性和自我防護能力。2)學習檢查虛擬內(nèi)存空間或對其進行操作。3)了解Windows的內(nèi)存結構和虛擬內(nèi)存的管理,進而了解進程堆
8、和Windows為使用內(nèi)存而提供的一些擴展功能。3 實驗內(nèi)容與步驟虛擬內(nèi)存的檢測清單2所示的程序使用VirtualQueryEX()函數(shù)來檢查虛擬內(nèi)存空間。步驟1:在“開始”菜單中單擊“程序”、 “Microsoft Visual Studio 60”、“MicrosoftVisualC+60”,進入VisualC+窗口。步驟2:運行以下程序清單清單2 檢測進程的虛擬地址空間#include#include#include#include#pragma comment(lib,shlwapi.lib)/以可讀方式對用戶顯示保護的輔助方法。/保護標記表示允許應用程序對內(nèi)存進行訪問的類型以及操作系
9、統(tǒng)強制訪問的類型inline bool TestSet(DWORD dwTarget, DWORD dwMask)return(dwTarget & dwMask)=dwMask);#define SHOWMASK(dwTarget,type)if(TestSet(dwTarget,PAGE_#type)std:cout,#type;void ShowProtection(DWORD dwTarget)SHOWMASK(dwTarget,READONLY);SHOWMASK(dwTarget,GUARD);SHOWMASK(dwTarget,NOCACHE);SHOWMASK(dwTarget
10、,READWRITE);SHOWMASK(dwTarget,WRITECOPY);SHOWMASK(dwTarget,EXECUTE);SHOWMASK(dwTarget,EXECUTE_READ);SHOWMASK(dwTarget,EXECUTE_READWRITE);SHOWMASK(dwTarget,EXECUTE_WRITECOPY);SHOWMASK(dwTarget,NOACCESS);/遍歷整個虛擬內(nèi)存并對用戶顯示其屬性的工作程序的方法void WalkVM(HANDLE hProcess)/首先,獲得系統(tǒng)信息SYSTEM_INFO si;:ZeroMemory(&si,siz
11、eof(si);:GetSystemInfo(&si);/分配要存放信息的緩沖區(qū)MEMORY_BASIC_INFORMATION mbi;:ZeroMemory(&mbi,sizeof(mbi);/循環(huán)整個應用程序地址空間LPCVOID pBlock=(LPVOID)si.lpMinimumApplicationAddress;while(pBlocksi.lpMaximumApplicationAddress)/獲得下一個虛擬內(nèi)存塊的信息if(:VirtualQueryEx(hProcess,/相關的進程pBlock,/開始位置&mbi,/緩沖區(qū)sizeof(mbi)=sizeof(mbi)
12、/大小的確認/計算塊的結尾及其大小LPCVOID pEnd=(PBYTE)pBlock+mbi.RegionSize;TCHAR szSizeMAX_PATH;:StrFormatByteSize(mbi.RegionSize,szSize,MAX_PATH);/顯示塊地址和大小std:cout.fill(0);std:coutstd:hexstd:setw(8)(DWORD)pBlock-std:hexstd:setw(8)(DWORD)pEnd(strlen(szSize)=7?(:()szSize);/顯示塊的狀態(tài)switch(mbi.State)case MEM_COMMIT:std:
13、cout,Committed;break;case MEM_FREE:std:cout,Free;break;case MEM_RESERVE:std:cout,Reserved;break;/顯示保護if(mbi.Protect=0&mbi.State!=MEM_FREE)mbi.Protect=PAGE_READONLY;ShowProtection(mbi.Protect);/顯示類型switch(mbi.Type)case MEM_IMAGE:std:cout,Image;break;case MEM_MAPPED:std:cout,Mapped;break;case MEM_PRIV
14、ATE:std:cout0)/除去路徑并顯示:PathStripPath(szFilename);std:cout,Module:szFilename;std:coutstd:endl;/移動塊指針以獲得下一個塊pBlock=pEnd;void main()/遍歷當前進程的虛擬內(nèi)存:WalkVM(:GetCurrentProcess();清單2中顯示一個WalkVM()函數(shù)開始于某個進程可訪問的最低端虛擬地址處,并在其中顯示各塊虛擬內(nèi)存的特性。虛擬內(nèi)存中的塊由VirtualQueryEx()APl定義成連續(xù)塊或具有相同狀態(tài)(自由區(qū)、已調(diào)配區(qū)等)的內(nèi)存,并分配以一組統(tǒng)一的保護標志(只讀、可執(zhí)行等
15、)?;卮鹣铝袉栴}:1) 分析運行結果committed、reserved、free分別表示什么含義?_1)虛擬內(nèi)存的已調(diào)配區(qū)(committed):具有備用的物理內(nèi)存,根據(jù)該區(qū)域設定的訪問權限,用戶可以進行寫、讀或在其中執(zhí)行程序等操作。2)虛擬內(nèi)存的保留區(qū)(reserved):沒有備用的物理內(nèi)存,但有一定的訪問權限o 3)虛擬內(nèi)存的自由區(qū)(free):不限定其用途,有相應的PAGE_NOACCESS權限。_按committed、reserved、free等三種虛擬地址空間分別記錄實驗數(shù)據(jù),其中“描述”是指對該組數(shù)據(jù)的簡單描述,例如,對下列一組數(shù)據(jù):0001000000012000Committ
16、ed,READWRITE,Private可描述為:具有READWRITE權限的已調(diào)配私有內(nèi)存區(qū)。將系統(tǒng)當前的自由區(qū)(free)虛擬地址空間填入表1中。(表格可以自己畫,通過把運行結果復制到word中文字轉換成表格)表1 實驗記錄00012000-00020000(56.0 KB)FreeNOACCESS00021000-00030000(60.0 KB)FreeNOACCESS00133000-00140000(52.0 KB)FreeNOACCESS00276000-00280000(40.0 KB)FreeNOACCESS002c1000-002d0000(60.0 KB)FreeNOAC
17、CESS00311000-00320000(60.0 KB)FreeNOACCESS00326000-00330000(40.0 KB)FreeNOACCESS00371000-00380000(60.0 KB)FreeNOACCESS00391000-003a0000(60.0 KB)FreeNOACCESS003a1000-003b0000(60.0 KB)FreeNOACCESS003c3000-003d0000(52.0 KB)FreeNOACCESS003128 KB)FreeNOACCESS00485000-00490000(44.0 KB)FreeN
18、OACCESS00558000-00560000(32.0 KB)FreeNOACCESS00663000-00670000(52.0 KB)FreeNOACCESS00970000-62c20000(1.53 GB)FreeNOACCESS62c29000-73fa0000(275 MB)FreeNOACCESS740034.9 MB)FreeNOACCESS7631d000-77be0000(24.7 MB)FreeNOACCESS77c38000-77d10000(864 KB)FreeNOACCESS77e49000-77e50000(28.0 KB)Fre
19、eNOACCESS77ee2000-77ef0000(56.0 KB)FreeNOACCESS77f39000-77f40000(28.0 KB)FreeNOACCESS77fb6000-77fc0000(40.0 KB)FreeNOACCESS77fd1000-7c800000(72.1 MB)FreeNOACCESS7c91e000-7c920000(8.00 KB)FreeNOACCESS7c9b3000-7f6f0000(45.2 MB)FreeNOACCESS7f7f0000-7ffa0000(7.68 MB)FreeNOACCESS7ffd3000-7ffd7000(16.0 KB
20、)FreeNOACCESS7ffd8000-7ffdf000(28.0 KB)FreeNOACCESS將系統(tǒng)當前的已調(diào)配區(qū) (committed) 虛擬地址空間填入表2中。表2 實驗記錄00010000-00012000(8.00 KB)CommittedREADWRITEPrivate00020000-00021000(4.00 KB)CommittedREADWRITEPrivate0012c000-0012d000(4.00 KB)CommittedGUARDREADWRITEPrivate001212.0 KB)CommittedREADWRITEPriva
21、te00130000-00133000(12.0 KB)CommittedREADONLYMapped00140000-00145000(20.0 KB)CommittedREADWRITEPrivate00240000-00246000(24.0 KB)CommittedREADWRITEPrivate00250000-00253000(12.0 KB)CommittedREADWRITEMapped00260000-00276000(88.0 KB)CommittedREADONLYMapped00280000-002c1000(260 KB)CommittedREADONLYMapped
22、002260 KB)CommittedREADONLYMapped00320000-00326000(24.0 KB)CommittedREADONLYMapped00330000-00371000(260 KB)CommittedREADONLYMapped00380000-00388000(32.0 KB)CommittedREADWRITEPrivate00390000-00391000(4.00 KB)CommittedREADWRITEPrivate003a0000-003a1000(4.00 KB)CommittedREADWRITEPrivate00
23、3b0000-003b4000(16.0 KB)CommittedREADWRITEPrivate003c0000-003c3000(12.0 KB)CommittedREADONLYMapped003d0000-003d3000(12.0 KB)CommittedREADWRITEPrivate00400000-00401000(4.00 KB)CommittedREADONLYImageModule:111.exe00401000-00470000(444 KB)CommittedEXECUTE_READImage00470000-00478000(32.0 KB)CommittedREA
24、DONLYImage00478000-0047b000(12.0 KB)CommittedREADWRITEImage0047b000-0047d000(8.00 KB)CommittedWRITECOPYImage004716.0 KB)CommittedREADWRITEImage00481000-00485000(16.0 KB)CommittedREADONLYImage00490000-00496000(24.0 KB)CommittedEXECUTE_READMapped00550000-00552000(8.00 KB)CommittedEXECUTE
25、_READMapped00560000-00663000(1.01 MB)CommittedREADONLYMapped00670000-006ef000(508 KB)CommittedEXECUTE_READMapped62c20000-62c21000(4.00 KB)CommittedREADONLYImageModule:LPK.DLL62c21000-62c26000(20.0 KB)CommittedEXECUTE_READImage62c26000-62c27000(4.00 KB)CommittedREADWRITEImage62c27000-62c29000(8.00 KB
26、)CommittedREADONLYImage73fa0000-73fa1000(4.00 KB)CommittedREADONLYImageModule:USP10.dll73fa1000-73fe5000(272 KB)CommittedEXECUTE_READImage73fe5000-73fef000(40.0 KB)CommittedWRITECOPYImage73fef000-73ff1000(8.00 KB)CommittedREADWRITEImage73ff1000-73ff4000(12.0 KB)CommittedWRITECOPYImage73ff4000-73ff50
27、00(4.00 KB)CommittedREADWRITEImage73ff5000-7400b000(88.0 KB)CommittedREADONLYImage76300000-76301000(4.00 KB)CommittedREADONLYImageModule:IMM32.DLL76301000-76316000(84.0 KB)CommittedEXECUTE_READImage76316000-76317000(4.00 KB)CommittedREADWRITEImage76317000-7631d000(24.0 KB)CommittedREADONLYImage77be0
28、000-77be1000(4.00 KB)CommittedREADONLYImageModule:msvcrt.dll77be1000-77c2d000(304 KB)CommittedEXECUTE_READImage77c2d000-77c2f000(8.00 KB)CommittedWRITECOPYImage77c2f000-77c30000(4.00 KB)CommittedREADWRITEImage77c30000-77c31000(4.00 KB)CommittedWRITECOPYImage77c31000-77c34000(12.0 KB)CommittedREADWRI
29、TEImage77c34000-77c38000(16.0 KB)CommittedREADONLYImage77d10000-77d11000(4.00 KB)CommittedREADONLYImageModule:USER32.dll77d11000-77d71000(384 KB)CommittedEXECUTE_READImage77d71000-77d72000(4.00 KB)CommittedREADWRITEImage77d72000-77d73000(4.00 KB)CommittedWRITECOPYImage77d73000-77da0000(180 KB)Commit
30、tedREADONLYImage77da0000-77da1000(4.00 KB)CommittedREADONLYImageModule:ADVAPI32.dll77da1000-77e16000(468 KB)CommittedEXECUTE_READImage77e16000-77e17000(4.00 KB)CommittedREADWRITEImage77e17000-77e1b000(16.0 KB)CommittedWRITECOPYImage77e1b000-77e49000(184 KB)CommittedREADONLYImage77e50000-77e51000(4.0
31、0 KB)CommittedREADONLYImageModule:RPCRT4.dll77e51000-77edb000(552 KB)CommittedEXECUTE_READImage77edb000-77edc000(4.00 KB)CommittedREADWRITEImage77edc000-77ee2000(24.0 KB)CommittedREADONLYImage77ef0000-77ef1000(4.00 KB)CommittedREADONLYImageModule:GDI32.dll77ef1000-77f34000(268 KB)CommittedEXECUTE_RE
32、ADImage77f34000-77f36000(8.00 KB)CommittedREADWRITEImage77f36000-77f39000(12.0 KB)CommittedREADONLYImage77f40000-77f41000(4.00 KB)CommittedREADONLYImageModule:SHLWAPI.dll77f41000-77fad000(432 KB)CommittedEXECUTE_READImage77fad000-77fae000(4.00 KB)CommittedREADWRITEImage77fae000-77fb6000(32.0 KB)Comm
33、ittedREADONLYImage77fc0000-77fc1000(4.00 KB)CommittedREADONLYImageModule:Secur32.dll77fc1000-77fce000(52.0 KB)CommittedEXECUTE_READImage77fce000-77fcf000(4.00 KB)CommittedREADWRITEImage77fcf000-77fd1000(8.00 KB)CommittedREADONLYImage7c800000-7c801000(4.00 KB)CommittedREADONLYImageModule:kernel32.dll
34、7c801000-7c885000(528 KB)CommittedEXECUTE_READImage7c885000-7c888000(12.0 KB)CommittedREADWRITEImage7c888000-7c88a000(8.00 KB)CommittedWRITECOPYImage7c88a000-7c91e000(592 KB)CommittedREADONLYImage7c920000-7c921000(4.00 KB)CommittedREADONLYImageModule:ntdll.dll7c921000-7c99b000(488 KB)CommittedEXECUT
35、E_READImage7c99b000-7c99e000(12.0 KB)CommittedREADWRITEImage7c99e000-7c9a0000(8.00 KB)CommittedWRITECOPYImage7c9a0000-7c9b3000(76.0 KB)CommittedREADONLYImage7f6f0000-7f6f7000(28.0 KB)CommittedEXECUTE_READMapped7ffa0000-7ffd3000(204 KB)CommittedREADONLYMapped7ffd7000-7ffd8000(4.00 KB)CommittedREADWRI
36、TEPrivate7ffdf000-7ffe0000(4.00 KB)CommittedREADWRITEPrivate7ffe0000-7ffe1000(4.00 KB)CommittedREADONLYPrivate將系統(tǒng)當前的保留區(qū) (reserved) 虛擬地址空間填入表3中。表3 實驗記錄00030000-0012c000(0.98 MB)ReservedREADONLYPrivate00145000-00240000(0.98 MB)ReservedREADONLYPrivate00246000-00250000(40.0 KB)ReservedREADONLYPrivate002
37、53000-00260000(52.0 KB)ReservedREADONLYMapped00388000-00390000(32.0 KB)ReservedREADONLYPrivate003b4000-003c0000(48.0 KB)ReservedREADONLYPrivate003d3000-003e0000(52.0 KB)ReservedREADONLYPrivate00496000-00550000(744 KB)ReservedREADONLYMapped00552000-00558000(24.0 KB)ReservedREADONLYMapped006ef000-0097
38、0000(2.50 MB)ReservedREADONLYMapped7f6f7000-7f7f0000(996 KB)ReservedREADONLYMapped7ffe1000-7fff0000(60.0 KB)ReservedNOACCESSPrivate2) 從上述輸出結果,對照分析程序,請簡單描述程序運行的流程:從主程序開始,調(diào)用 walkvm(handle hProcess), walkvm(handle hprocess) 先獲得系統(tǒng)信息,分配應用程序地址空間,進行循環(huán)程序:獲得虛擬程序的內(nèi)存信息,顯示塊的大小和位置及狀態(tài),顯示保護方式和類型,檢查可執(zhí)行的影像,除去文件名的路徑并
39、將文件名顯示出來,移動塊指針獲得下一塊,循環(huán) 3) 實驗總結(根據(jù)實驗結果及自己查閱相關資料寫出VirtualAlloc()函數(shù)的作用,各個參數(shù)的可能值及含義。列出對虛擬內(nèi)存的認識)通過本次實驗體會學習檢查虛擬內(nèi)存空間或對其進行操作,windows2000的內(nèi)存采用,進而了解進程和windows為使用內(nèi)存而提供的一些擴展功能。虛擬內(nèi)存計算機系統(tǒng)內(nèi)存管理的一種技術。它使得應用成粗認為它擁有連續(xù)的可用的內(nèi)存,而實際上,它通常是被隔成多個物理內(nèi)存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數(shù)據(jù)交換。4)列出虛擬內(nèi)存不足的原因及其解決方法;一、剪貼板占用了太多的內(nèi)存 實際上,剪貼板是內(nèi)存中的
40、一塊臨時區(qū)域,當你在程序中使用了“復制”或“剪切”命令后, Windows將把復制或剪切的內(nèi)容及其格式等信息暫時存儲在剪貼板上,以供“粘貼”使用。如果當前剪貼板中存放的是一幅圖畫,則剪貼板就占用了不少的內(nèi)存。這時,請按下述步驟清除剪貼板中的內(nèi)容,釋放其占用的內(nèi)存資源: 1.單擊“開始”,指向“程序”或“所有程序”,指向“附件”,指向“系統(tǒng)工具”,然后單擊“剪貼板查看程序”,打開“剪貼板查看程序”窗口。2.在“編輯”菜單上,單擊“刪除”命令。3.關閉“剪貼板查看程序”窗口。 為了與Microsoft Office程序提供的多重剪貼板相區(qū)分,上述所說的剪貼板,常被我們稱為系統(tǒng)剪貼板。如果你正在使用
41、Micros OftOffice程序,而且使用了其多重剪貼板功能,那么你應清空“Office剪貼板”上的項目,方法是:在“Office剪貼板”任務窗格(OfficeXP)或工具欄 (Office2000)上,單擊“全部清空”或“清空剪貼板”。當清空“Office剪貼板”時,系統(tǒng)剪貼板也將同時被清空 二、打開的程序太多 如果同時打開的文檔過多或者運行的程序過多,就沒有足夠的內(nèi)存運行其他程序。這時,對于多文檔界面(MDl)程序,如Word、Excel等,請關閉當前文檔外的所有文檔,并退出當前未使用的程序,然后或許你就能夠繼續(xù)執(zhí)行因“內(nèi)存不足”而被中斷的任務。 三、重新啟動計算機 如果只退出程序,并
42、不重新啟動計算機,程序可能無法將內(nèi)存資源歸還給系統(tǒng)。請重新啟動計算機以釋放系統(tǒng)資源,然后再次運行程序或執(zhí)行被中斷的任務。 四、自動運行的程序太多如果在啟動Windows時自動運行的程序太多,那么,即使重新啟動計算機,也沒足夠的內(nèi)存用來運行其它程序。 (一)確定設置為自動運行的程序是否太多 1.單擊“開始”,然后單擊“運行”。 2.在“打開”框中,鍵入“Msconfig”,單擊“確定”按鈕,打開“系統(tǒng)配置實用程序”窗口。 3.單擊“常規(guī)”選項卡,選中“選擇性啟動”復選鈕,清除“處理Win.ini文件”復選框和“加載啟動組項目”復選框。 4.單擊“確定”按鈕,當系統(tǒng)提示重新啟動計算機時,請單擊“是
43、”按鈕。重新啟動電腦后,如果內(nèi)存不足的問題已經(jīng)解決,你就可以將計算機配置為啟動時不打開任何程序。 (二)配置計算機不自動打開任何程序 1.恢復在Msconfig中所作的更改,方法是:在“系統(tǒng)配置實用程序”窗口,單擊“常規(guī)”選項卡,選擇“正常啟動”,單擊“確定”按鈕,然后重新啟動計算機。 2.刪除“啟動”文件夾中的所有快捷方式 單擊“開始”,指向“設置”,然后單擊“任務欄和開始菜單”,系統(tǒng)彈出“任務欄屬性”對話框。 單擊“開始菜單”選項卡,單擊“自定義”,再單擊“刪除”按鈕。 單擊“啟動”文件夾旁的加號,以顯示設置為自動運行的程序列表。如果“啟動”文件夾旁沒有加號“+”,則表明沒有設置為自動運行
44、的程序,請單擊“關閉”按鈕以終止此過程。 單擊“啟動”文件夾中的每個快捷方式,然后單擊“刪除”按鈕。此操作將從“開始”菜單中刪除快捷方式,但并不從硬盤中刪除相應的程序。對于“啟動”文件夾中的每個快捷方式,重復該步驟。 單擊“關閉”按鈕。 單擊“確定”按鈕。 3.禁用從Win.ini文件加載的所有程序 如上所述打開“系統(tǒng)配置實用程序”窗口。 單擊“Win.ini”選項卡,雙擊“windows”,然后清除“Load=”和“Run=”復選框。 單擊“確定”按鈕,當系統(tǒng)提示重新啟動計算機時,請單擊“是”按鈕。 五、讓Windows管理虛擬內(nèi)存設置 如果沒有設置讓Windows管理虛擬內(nèi)存或者禁用虛擬內(nèi)
45、存,那么計算機可能無法正常工作,也可能收到“內(nèi)存不足”的消息,或在運行某程序時出現(xiàn)相同的錯誤消息。 1.單擊“開始”,單擊“設置”,單擊“控制面板”,然后雙擊“系統(tǒng)”。 2.在“系統(tǒng)屬性”對話框中,單擊“性能”選項卡,然后單擊“虛擬內(nèi)存”按鈕。 3.選中“讓Windows管理虛擬內(nèi)存設置(推薦)”選項,將計算機中可作為虛擬內(nèi)存使用的硬盤空間量設置為默認值。此時,虛擬內(nèi)存分頁“win386.swp”能夠根據(jù)實際內(nèi)存的使用情況動態(tài)縮小和放大,最小容量為0,最大容量為硬盤的全部可用空間。 4.單擊“確定”按鈕。 六、增加可用磁盤空間 由于Windows以虛擬內(nèi)存分頁文件的格式使用硬盤空間以模擬RAM
46、(),所以,盡管已設置為讓Windows管理虛擬內(nèi)存,但是當虛擬內(nèi)存分頁文件所在的驅動器(默認為Windows系統(tǒng)所在的硬盤分區(qū))沒有足夠的空間時,仍會出現(xiàn)“內(nèi)存不足”的錯誤。此時,請執(zhí)行以下一項或多項操作,增加Windows虛擬內(nèi)存分頁文件所在驅動器上的可用空間: 1.清空回收站,方法是:在桌面上,右鍵單擊“回收站”,再單擊“清空回收站”。 2.從磁盤中刪除臨時文件,方法是:打開“Windows資源管理器”或“我的電腦”窗口,右鍵單擊要釋放其空間的磁盤,然后單擊“屬性”,在“常規(guī)”選項卡上,單擊“磁盤清理”按鈕,選中要刪除的不需要的文件前的復選框,可以閱讀列表下面區(qū)域中每個文件類型的說明,單
47、擊“確定”按鈕。 3.從磁盤中刪除過期的文件或已存檔的文件。 4.刪除從未使用過的所有文件。 七、程序文件被毀壞 如果僅僅是使用某個程序時,系統(tǒng)提示內(nèi)存不足,而其他程序可以正常運行,那么可能的原因是該程序文件被毀壞,從而導致內(nèi)存問題。然而Windows并沒有確切地提示表明該程序已損壞,所以請嘗試刪除并重新安裝該程序,然后重新運行該程序。如果系統(tǒng)不再提示內(nèi)存不足,那么說明原程序文件確實被損壞。 八、使用內(nèi)存優(yōu)化軟件 內(nèi)存優(yōu)化軟件有很多,比如RAM Idle和Memo Kit就是比較出色的兩個。這些軟件都可以設置自動清空剪貼板、釋放被關閉程序未釋放的內(nèi)存、對Win386.swp文件進行重新組織等,
48、從而免除你手工操作的麻煩,達到自動釋放內(nèi)存的目的,不妨一試! 九、查殺病毒 系統(tǒng)感染電腦病毒也是導致內(nèi)存不足的罪魁禍首,當系統(tǒng)出現(xiàn)“內(nèi)存不足”的錯誤時,請使用最新的防毒軟件查殺病毒,或者在清除電腦病毒之一、剪貼板占用了太多的內(nèi)存 實際上,剪貼板是內(nèi)存中的一塊臨時區(qū)域,當你在程序中使用了“復制”或“剪切”命令后, Windows將把復制或剪切的內(nèi)容及其格式等信息暫時存儲在剪貼板上,以供“粘貼”使用。如果當前剪貼板中存放的是一幅圖畫,則剪貼板就占用了不少的內(nèi)存。這時,請按下述步驟清除剪貼板中的內(nèi)容,釋放其占用的內(nèi)存資源: 1.單擊“開始”,指向“程序”或“所有程序”,指向“附件”,指向“系統(tǒng)工具”
49、,然后單擊“剪貼板查看程序”,打開“剪貼板查看程序”窗口。2.在“編輯”菜單上,單擊“刪除”命令。3.關閉“剪貼板查看程序”窗口。 為了與Microsoft Office程序提供的多重剪貼板相區(qū)分,上述所說的剪貼板,常被我們稱為系統(tǒng)剪貼板。如果你正在使用Micros OftOffice程序,而且使用了其多重剪貼板功能,那么你應清空“Office剪貼板”上的項目,方法是:在“Office剪貼板”任務窗格(OfficeXP)或工具欄 (Office2000)上,單擊“全部清空”或“清空剪貼板”。當清空“Office剪貼板”時,系統(tǒng)剪貼板也將同時被清空 二、打開的程序太多 如果同時打開的文檔過多或者
50、運行的程序過多,就沒有足夠的內(nèi)存運行其他程序。這時,對于多文檔界面(MDl)程序,如Word、Excel等,請關閉當前文檔外的所有文檔,并退出當前未使用的程序,然后或許你就能夠繼續(xù)執(zhí)行因“內(nèi)存不足”而被中斷的任務。 三、重新啟動計算機 如果只退出程序,并不重新啟動計算機,程序可能無法將內(nèi)存資源歸還給系統(tǒng)。請重新啟動計算機以釋放系統(tǒng)資源,然后再次運行程序或執(zhí)行被中斷的任務。 四、自動運行的程序太多 如果在啟動Windows時自動運行的程序太多,那么,即使重新啟動計算機,也沒足夠的內(nèi)存用來運行其它程序。 (一)確定設置為自動運行的程序是否太多 1.單擊“開始”,然后單擊“運行”。 2.在“打開”框中,鍵入“Msconfig”,單擊“確定”按鈕,打開“系統(tǒng)配置實用程序”窗口。 3.單擊“常規(guī)”選項卡,選中“選擇性啟動”復選鈕,清除“處理Win.ini文件”復選框和“加載啟動組項目”復選框。 4.單擊“確定”按鈕,當系統(tǒng)提示重新啟動計算機時,請單擊“是”
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《室內(nèi)設計空間組織》課件
- 《電源系統(tǒng)的建?!氛n件
- 《病理心理學》課件
- 通史版2025屆高考歷史二輪總復習第二編考前突破突破一史學入門與史料研讀課件
- 大學生網(wǎng)絡安全教育
- 單位管理制度集合大合集人員管理十篇
- 單位管理制度合并選集【職員管理篇】十篇
- 單位管理制度分享匯編職員管理篇
- 單位管理制度分享大全職工管理
- 單位管理制度范例選集職工管理篇十篇
- 【西平李氏】忠武郡王李晟后裔分布及部分家譜
- 水庫回水計算(實用)
- 人力資源管理概論全套課件
- 伊索寓言-狗和影子課件
- 卸船機用行星減速機的設計-畢業(yè)設計
- 中班美術活動美麗的蝴蝶教案【含教學反思】
- 北師大版九年級數(shù)學上冊教學教學工作總結
- 光儲電站儲能系統(tǒng)調(diào)試方案
- (完整)小學語文考試專用作文方格紙
- 管理供應商 供應商績效評估
- 煙花爆竹工程設計安全規(guī)范
評論
0/150
提交評論