实验3Windows虚拟内存_第1页
实验3Windows虚拟内存_第2页
实验3Windows虚拟内存_第3页
实验3Windows虚拟内存_第4页
实验3Windows虚拟内存_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验3 Windows虚拟内存(一)、虚拟内存1背景知识在Windows环境下,32位Windows系统中,232=4GB的虚拟地址空间被划分成两个部分: 低端2GB提供给进程使用,高端 2GB提供给系统使用。这意味着用户的应用程序代码,包 括DLL以及进程使用的各种数据等,都装在用户进程地址空间内(低端2GB)。用户过程的虚拟地址空间也被分成三部分:1)虚拟内存的已调配区(committed):具有备用的物理内存, 根据该区域设定的访问权限, 用户可以进行写、读或在其中执行程序等操作。2)虚拟内存的保留区(reserved):没有备用的物理内存,但有一定的访问权限 o3)虚拟内存的自由区(f

2、ree):不限定其用途,有相应的PAGE_NOACCESS权限。与虚拟内存区相关的访问权限告知系统进程可在内存中进行何种类型的操作。例如,用户不能在只有 PAGE_READONL Y权限的区域上进行写操作或执行程序;也不能在只有 PAGE_EXECUTE权限的区域里进行读、写操作。而具有 PAGE_NOACCESS权限的特殊区 域,则意味着不允许进程对其地址进行任何操作。在进程装入之前,整个虚拟内存的地址空间都被设置为只有PAGE_NOACCESS权限的自由区域。当系统装入进程代码和数据后,才将内存地址的空间标记为已调配区或保留区, 并将诸如 EXECUTE、READWRITE 和READON

3、L Y的权限与这些区域相关联。如表1所示,给出了 MEMORY_BASIC_INFORMA TION的结构,此数据描述了进程虚拟内存空间中一组虚拟内存页面的当前状态,其中State项表明这些区域是否为自由区、已调配区或保留区;Protect项则包含了 Windows系统为这些区域添加了何种访问保护;Type项则表明这些区域是可执行图像、内存映射文件还是简单的私有内存。VirtualQueryEX()API能让用户在指定的进程中,对虚拟内存地址的大小和属性进行检测。Windows还提供了一整套能使用户精确控制应用程序的虚拟地址空间的虚拟内存API。一些用于虚拟内存操作及检测的 API如表2所示。

4、表 1 MEMORY BASIC INFORMA TION 结构的成员成员名称目的PVOID BaseAddress虚拟内存区域开始处的指针PVOID Allocation Base如果这个特定的区域为子分配区的话,则为虚拟内存外面区域的指针;否则,此值与 BaseAddress相同DWORDAllocation Protect虚拟内存最初分配区域的保护属性。其可能值包括:PAGE_NOACCESS,PAGE_READONL Y,PAGE_READWRITE和PAGE EXECUTE READDWORD Regio nSize虚拟内存区域的字节数DWORD State区域的当前分配状态。其可能

5、值为MEM_COMMIT,MEM_FREE和 MEM RESERVEDW()RD Protect虚拟内存当前区域的保护属性。可能值与AllocationProtect成员的相同DWORD Type虚拟内存区域中出现的页面类型。可能值为MEM_IMAGE ,MEM_MAPPED 和 MEM PRIV ATE表2虚拟内存的APIAPl名称描述VirtualQueryEx()通过填充MEMORY_BASIC_INFORMA TION结构检测进程内虚拟内 存的区域VirtuaAlloc()保留或调配进程的部分虚拟内存,设置分配和保护标志VirtualFree()释放或收回应用程序使用的部分虚拟地址Vi

6、rtualProtect()改变虚拟内存区域保护规范VirtualLock()防止系统将虚拟内存区域通过系统交换到页面文件中VirtualU nlock()释放虚拟内存的锁定区域,必要时,允许系统将其交换到页面文件中提供虚拟内存分配功能的是VinualAlloc()API。该API支持用户向系统要求新的虚拟内存或改变已分配内存的当前状态。用户若想通过 VirtualAlloc()函数使用虚拟内存,可以采用两种方式通知系统:1) 简单地将内存内容保存在地址空间内。2) 请求系统返回带有物理存储区(RAM的空间或换页文件)的部分地址空间。用户可以用flAllocation Type参数(commi

7、t和reserve)来定义这些方式,用户可以通知Windows按只读、读写、不可读写、执行或特殊方式来处理新的虚拟内存。与VirtualAlloc()函数对应的是VirtualFree()函数,其作用是释放虚拟内存中的已调配页或保留页。用户可利用dwFreeType参数将已调配页修改成保留页属性。VirtualProtect()是VirtualAlloc()的一个辅助函数,利用它可以改变虚拟内存区的保护规 范。2实验目的1) 通过实验了解 Windows内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力。Windows为使用内2) 学习检查虚拟内存空

8、间或对其进行操作。3) 了解Windows的内存结构和虚拟内存的管理,进而了解进程堆和存而提供的一些扩展功能。3 实验内容与步骤虚拟内存的检测清单 2 所示的程序使用 VirtualQueryEX() 函数来检查虚拟内存空间。步骤 1:在“开始”菜单中单击“程序” 、 “ Microsoft Visual Studio 6 0”、“ MicrosoftVisualC+6 0”,进入 VisualC+ 窗口。步骤 2:运行以下程序清单清单 2 检测进程的虚拟地址空间#include#include#include#include#pragma comment(lib,shlwapi.lib)/以

9、可读方式对用户显示保护的辅助方法。 /保护标记表示允许应用程序对内存进行访问的类型以及操作系统强制访问的类型inline bool TestSet(DWORD dwTarget, DWORD dwMask) return(dwTarget & dwMask)=dwMask);std:cout,#type;void ShowProtection(DWORD dwTarget)SHOWMASK(dwTarget,READONL Y); SHOWMASK(dwTarget,GUARD);SHOWMASK(dwTarget,NOCACHE); SHOWMASK(dwTarget,READWRITE);

10、 SHOWMASK(dwTarget,WRITECOPY);SHOWMASK(dwTarget,EXECUTE); SHOWMASK(dwTarget,EXECUTE_READ);SHOWMASK(dwTarget,EXECUTE_READWRITE); SHOWMASK(dwTarget,EXECUTE_WRITECOPY);SHOWMASK(dwTarget,NOACCESS);/遍历整个虚拟内存并对用户显示其属性的工作程序的方法void WalkVM(HANDLE hProcess)/首先,获得系统信息SYSTEM_INFO si;:ZeroMemory(&si,sizeof(si);:

11、GetSystemInfo(&si);/分配要存放信息的缓冲区MEMORY_BASIC_INFORMATION mbi; :ZeroMemory(&mbi,sizeof(mbi);/循环整个应用程序地址空间LPCVOID pBlock=(LPVOID)si.lpMinimumApplicationAddress; while(pBlocksi.lpMaximumApplicationAddress)/获得下一个虚拟内存块的信息if(:VirtualQueryEx(hProcess,/ 相关的进程pBlock,/开始位置&mbi,/缓冲区sizeof(mbi)=sizeof(mbi) / 大小的

12、确认/计算块的结尾及其大小LPCVOID pEnd=(PBYTE)pBlock+mbi.RegionSize;TCHAR szSizeMAX_PATH;:StrFormatByteSize(mbi.RegionSize,szSize,MAX_PA TH);/显示块地址和大小std:cout.fill(0); std:coutstd:hexstd:setw(8)(DWORD)pBlock-std:hexstd:setw(8)(DWORD)pEnd(strlen(szSize)=7?(:()szSize);/显示块的状态switch(mbi.State)case MEM_COMMIT: std:c

13、out,Committed; break;case MEM_FREE:std:cout,Free;break;case MEM_RESERVE:std:cout,Reserved;break;void main()/显示保护if(mbi.Protect=0&mbi.State!=MEM_FREE) mbi.Protect=PAGE_READONL Y;ShowProtection(mbi.Protect);/显示类型 switch(mbi.Type)case MEM_IMAGE: std:cout,Image; break;case MEM_MAPPED: std:cout,Mapped; b

14、reak;case MEM_PRIV ATE: std:cout0) /除去路径并显示:PathStripPath(szFilename); std:cout,Module:szFilename;std:cout free 分另U表示什么含义?_1)虚拟内存的已调配区(committed):具有备用的物理内存,根据该区域设定的访问权 限,用户可以进行写、读或在其中执行程序等操作。2)虚拟内存的保留区(reserved):没有备用的物理内存,但有一定的访问权限 o3)虚拟内存的自由区 (free):不限定其用途,有相应的PAGE_NOACCESS 权限。按committed、reserved f

15、ree等三种虚拟地址空间分别记录实验数据,其中描述”是 指对该组数据的简单描述,例如,对下列一组数据:00010000 00012000Committed , READWRITE , Private 可描述为:具有 READWRITE权限的已调配私有内存区。将系统当前的自由区(free)虚拟地址空间填入表 1中。(表格可以自己画,通过把运行结果复 制到word中文字转换成表格)表1实验记录00012000-00020000(56.0 KB)FreeNOACCESS00021000-00030000(60.0 KB)FreeNOACCESS00133000-00140000(52.0 KB)Fr

16、eeNOACCESS00276000-00280000(40.0 KB)FreeNOACCESS002c1000-002d0000(60.0 KB)FreeNOACCESS00311000-00320000(60.0 KB)FreeNOACCESS00326000-00330000(40.0 KB)FreeNOACCESS00371000-00380000(60.0 KB)FreeNOACCESS00391000-003a0000(60.0 KB)FreeNOACCESS003a1000-003b0000(60FreeNOACCESS.0 KB)003c3000-003d0000(52.0 K

17、B)FreeNOACCESS003128 KB)FreeNOACCESS00485000-00490000(44.0 KB)FreeNOACCESS00558000-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

18、 MB)FreeNOACCESS77c38000-77d10000(864 KB)FreeNOACCESS77e49000-77e50000(28.0 KB)FreeNOACCESS77ee2000-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

19、(45.2 MB)FreeNOACCESS7f7f0000-7ffa0000(7.68MB)FreeNOACCESS7ffd3000-7ffd7000(16.0KB)FreeNOACCESS7ffd8000-7ffdf000(28.0KB)FreeNOACCESS表2实验记录00010000-00012000(8.00 KB)Committe dREADWRITEPrivate00020000-00021000(4.CommitteREADWRITEPrivate00 KB)d0012c000-0012d000(4.CommitteGUARDREADWRITPrivate00 KB)dE001

20、212CommitteREADWRITEPrivate.0 KB)d00130000-00133000(12CommitteREADONL YMapped.0 KB)d00140000-00145000(20CommitteREADWRITEPrivate.0 KB)d00240000-00246000(24CommitteREADWRITEPrivate.0 KB)d00250000-00253000(12CommitteREADWRITEMapped.0 KB)d00260000-00276000(88CommitteREADONL YMapped.0 KB)d

21、00280000-002c1000(26CommitteREADONL YMapped0 KB)d00226CommitteREADONL YMapped0 KB)d00320000-00326000(24CommitteREADONL YMapped.0 KB)d00330000-00371000(26CommitteREADONL YMapped0 KB)d00380000-00388000(32CommitteREADWRITEPrivate.0 KB)d00390000-00391000(4.CommitteREADWRITEPrivate00 KB)d0

22、03a0000-003a1000(4.CommitteREADWRITEPrivate00 KB)d003b0000-003b4000(16CommitteREADWRITEPrivate.0 KB)d003c0000-003c3000(12CommitteREADONL YMapped.0 KB)d003d0000-003d3000(12CommitteREADWRITEPrivate.0 KB)d00400000-00401000(4.CommitteREADONL YImageModule:111.exe00 KB)d00401000-00470000(44CommitteEXECUTE

23、_REAImage4 KB)dD00470000-00478000(32.0 KB)Committe dREADONL YImage00478000-0047b000(12CommitteREADWRITEImage.0 KB)d0047b000-0047d000(8.CommitteWRITECOPYImage00 KB)d004716CommitteREADWRITEImage.0 KB)d00481000-00485000(16CommitteREADONL YImage.0 KB)d00490000-00496000(24CommitteEXECUTE_RE

24、AMapped.0 KB)dD00550000-00552000(8.CommitteEXECUTE_REAMapped00 KB)dD00560000-00663000(1.CommitteREADONL YMapped01 MB)d00670000-006ef000(50CommitteEXECUTE_REAMapped8 KB)dD62c20000-62c21000(4.CommitteREADONL YImageModule:LPK.DLL00 KB)d62c21000-62c26000(20CommitteEXECUTE_REAImage.0 KB)dD62c26000-62c270

25、00(4.CommitteREADWRITEImage00 KB)d62c27000-62c29000(8.CommitteREADONL YImage00 KB)d73fa0000-73fa1000(4.0CommitteREADONL YImageModule:USP10.dll0 KB)d73fa1000-73fe5000(27CommitteEXECUTE_REAImage2 KB)dD73fe5000-73fef000(40.CommitteWRITECOPYImage0 KB)d73fef000-73ff1000(8.00CommitteREADWRITEImageKB)d73ff

26、1000-73ff4000(12.0CommitteWRITECOPYImageKB)d73ff4000-73ff5000(4.00CommitteREADWRITEImageKB)d73ff5000-7400b000(88.CommitteREADONL YImage0 KB)d76300000-76301000(4.CommitteREADONL YImageModule:IMM32.DLL00 KB)d76301000-76316000(84CommitteEXECUTE_REAImage.0 KB)dD76316000-76317000(4.00 KB)Committe dREADWR

27、ITEImage76317000-7631d000(24CommitteREADONL YImage.0 KB)d77be0000-77be1000(4.CommitteREADONL YImageModule:msvcrt.dll00 KB)d77be1000-77c2d000(30CommitteEXECUTE_REAImage4 KB)dD77c2d000-77c2f000(8.0CommitteWRITECOPYImage0 KB)d77c2f000-77c30000(4.0CommitteREADWRITEImage0 KB)d77c30000-77c31000(4.Committe

28、WRITECOPYImage00 KB)d77c31000-77c34000(12CommitteREADWRITEImage.0 KB)d77c34000-77c38000(16CommitteREADONL YImage.0 KB)d77d10000-77d11000(4.CommitteREADONLYImageModule:USER32.dll00 KB)d77d11000-77d71000(38CommitteEXECUTE_REAImage4 KB)dD77d71000-77d72000(4.CommitteREADWRITEImage00 KB)d77d72000-77d7300

29、0(4.CommitteWRITECOPYImage00 KB)d77d73000-77da0000(18CommitteREADONL YImage0 KB)d77da0000-77da1000(4.CommitteREADONL YImageModule:ADV API32.00 KB)ddll77da1000-77e16000(46CommitteEXECUTE_REAImage8 KB)dD77e16000-77e17000(4.CommitteREADWRITEImage00 KB)d77e17000-77e1b000(16CommitteWRITECOPYImage.0 KB)d7

30、7e1b000-77e49000(18CommitteREADONL YImage4 KB)d77e50000-77e51000(4.CommitteREADONL YImageModule:RPCRT4.dll00 KB)d77e51000-77edb000(55CommitteEXECUTE_REAImage2 KB)dD77edb000-77edc000(4.CommitteREADWRITEImage00 KB)d77edc000-77ee2000(24.0 KB)Committe dREADONL YImage77ef0000-77ef1000(4.0CommitteREADONL

31、YImageModuleGDI32.dll0 KB)d77ef1000-77f34000(26CommitteEXECUTE_REAImage8 KB)dD77f34000-77f36000(8.0CommitteREADWRITEImage0 KB)d77f36000-77f39000(12.CommitteREADONL YImage0 KB)d77f40000-77f41000(4.0CommitteREADONL YImageModule:SHLWAPI.dl0 KB)dl77f41000-77fad000(43CommitteEXECUTE_REAImage2 KB)dD77fad0

32、00-77fae000(4.0CommitteREADWRITEImage0 KB)d77fae000-77fb6000(32.CommitteREADONL YImage0 KB)d77fc0000-77fc1000(4.0CommitteREADONL YImageModule:Secur32.dll0 KB)d77fc1000-77fce000(52.CommitteEXECUTE_REAImage0 KB)dD77fce000-77fcf000(4.0CommitteREADWRITEImage0 KB)d77fcf000-77fd1000(8.0CommitteREADONL YIm

33、age0 KB)d7c800000-7c801000(4.CommitteREADONL YImageModule:kernel32.dll00 KB)d7c801000-7c885000(52CommitteEXECUTE_REAImage8 KB)dD7c885000-7c888000(12CommitteREADWRITEImage.0 KB)d7c888000-7c88a000(8.CommitteWRITECOPYImage00 KB)d7c88a000-7c91e000(59CommitteREADONL YImage2 KB)d7c920000-7c921000(4.Commit

34、teREADONL YImageModule: ntdll.dll00 KB)d7c921000-7c99b000(48CommitteEXECUTE_REAImage8 KB)dD7c99b000-7c99e000(12CommitteREADWRITEImage.0 KB)d7c99e000-7c9a0000(8.0CommitteWRITECOPYImage0 KB)d7c9a0000-7c9b3000(76.0 KB)Committe dREADONL YImage7f6f0000-7f6f7000(28. 0 KB)Committe dEXECUTE_READMapped7ffa00

35、00-7ffd3000(204KB)Committe dREADONL YMapped7ffd7000-7ffd8000(4.00KB)Committe dREADWRITEPrivate7ffdf000-7ffe0000(4.00KB)Committe dREADWRITEPrivate7ffe0000-7ffe1000(4.00KB)Committe dREADONL YPrivate将系统当前的保留区(reserved)虚拟地址空间填入表3中。表3实验记录00030000-0012c000(0.98 MB)ReservedREADONL YPrivate00145000-00240000

36、(0.98 MB)ReservedREADONL YPrivate00246000-00250000(40.0 KB)ReservedREADONL YPrivate00253000-00260000(52.0 KB)ReservedREADONL YMapped00388000-00390000(32.0 KB)ReservedREADONL YPrivate003b4000-003c0000(48.0 KB)ReservedREADONL YPrivate003d3000-003e0000(52.0 KB)ReservedREADONL YPrivate00496000-00550000(

37、744 KB)ReservedREADONL YMapped00552000-00558000(24.0 KB)ReservedREADONL YMapped006e2.50 MB)ReservedREADONL YMapped7f6f7000-7f7f0000(996KB)ReservedREADONL YMapped7ffe1000-7fff0000(60.0KB)ReservedNOACCESSPrivate2)从上述输出结果,对照分析程序,请简单描述程序运行的流程:从主程序开始,调用walkvm(ha ndle hProcess),walkvm(ha ndl

38、e hprocess)先获得系统信息,分配应用程序地址空间,进行循环程序:获得虚拟程序的内存信息,显示块 的大小和位置及状态,显示保护方式和类型,检查可执行的影像,除去文件名的路径并将文件名显示出来, ,移动块指针获得下一块,循环3) 实验总结( 根据实验结果及自己查阅相关资料写出 VirtualAlloc() 函数的作用,各个参 数的可能值及含义。列出对虚拟内存的认识)通过本次实验体会学习检查虚拟内存空间或对其进行操作, windows2000 的内存采用, 进而了解进程和 windows 为使用内存而提供的一些扩展功能。虚拟内存计算机系统内存管 理的一种技术。 它使得应用成粗认为它拥有连续

39、的可用的内存, 而实际上, 它通常是被隔成 多个物理内存碎片, 还有部分暂时存储在外部磁盘存储器上, 在需要时进行数据交换。4)列出虚拟内存不足的原因及其解决方法;一、剪贴板占用了太多的内存实际上,剪贴板是内存中的一块临时区域,当你在程序中使用了“复制”或 “剪切”命令后, Windows 将把复制或剪切的内容及其格式等信息暂时存储在 剪贴板上,以供“粘贴”使用。如果当前剪贴板中存放的是一幅图画,则剪贴板 就占用了不少的内存。这时,请按下述步骤清除剪贴板中的内容,释放其占用的内存资源 :1. 单击“开始”,指向“程序”或“所有程序” ,指向“附件”,指向“系统 工具”,然后单击“剪贴板查看程序

40、” ,打开“剪贴板查看程序”窗口。2. 在“编辑”菜单上,单击“删除”命令。3. 关闭“剪贴板查看程序”窗口。为了与 Microsoft Office 程序提供的多重剪贴板相区分,上述所说的剪贴板, 常被我们称为系统剪贴板。如果你正在使用 Micros OftOffice 程序,而且使用了 其多重剪贴板功能, 那么你应清空“ Office 剪贴板”上的项目,方法是:在“ Office剪贴板”任务窗格(OfficeXP)或工具栏(0ffice2000)上,单击“全 部清空”或“清空剪贴板 ”。当清空“ Office 剪贴板”时,系统剪贴板也将同 时被清空二、打开的程序太多 如果同时打开的文档过多

41、或者运行的程序过多,就没有足够的内存运行 其他程序。这时,对于多文档界面 (MDl) 程序,如 Word、Excel 等,请关闭当前 文档外的所有文档,并退出当前未使用的程序, 然后或许你就能够继续执行因 “内 存不足”而被中断的任务。三、重新启动计算机如果只退出程序, 并不重新启动计算机, 程序可能无法将内存资源归还给系 统。请重新启动计算机以释放系统资源, 然后再次运行程序或执行被中断的任务。四、自动运行的程序太多如果在启动 Windows 时自动运行的程序太多,那 么,即使重新启动计算机,也没足够的内存用来运行其它程序。(一)确定设置为自动运行的程序是否太多1. 单击“开始”,然后单击“

42、运行” 。2. 在“打开”框中,键入“ Msconfig”,单击“确定”按钮,打开“系统 配置实用程序”窗口。3. 单击“常规” 选项卡, 选中“选择性启动” 复选钮, 清除“处理 Win.ini 文件”复选框和“加载启动组项目”复选框。4. 单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按 钮。重新启动电脑后, 如果内存不足的问题已经解决, 你就可以将计算机配置为 启动时不打开任何程序。(二) 配置计算机不自动打开任何程序1. 恢复在Msconfig中所作的更改,方法是:在“系统配置实用程序”窗口, 单击“常规”选项卡,选择“正常启动” ,单击“确定”按钮,然后重新启动计 算机。

43、2. 删除“启动”文件夹中的所有快捷方式 单击“开始”,指向“设置”,然后单击“任务栏和开始菜单”,系统弹 出“任务栏属性”对话框。 单击“开始菜单”选项卡,单击“自定义”,再单击“删除”按钮。 单击“启动”文件夹旁的加号,以显示设置为自动运行的程序列表。 如果“启动”文件夹旁没有加号“ +”,则表明没有设置为自动运行的程序,请单 击“关闭”按钮以终止此过程。 单击“启动”文件夹中的每个快捷方式,然后单击“删除”按钮。此操 作将从“开始”菜单中删除快捷方式, 但并不从硬盘中删除相应的程序。 对于“启 动”文件夹中的每个快捷方式,重复该步骤。 单击“关闭”按钮。 单击“确定”按钮。3. 禁用从

44、Win.ini 文件加载的所有程序 如上所述打开“系统配置实用程序”窗口。单击“ Win.ini ”选项卡,双击“ windows ”,然后清除“ Load=”和“ Run=” 复选框。单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。五、让 Windows 管理虚拟内存设置如果没有设置让 Windows 管理虚拟内存或者禁用虚拟内存, 那么计算机 可能无法正常工作,也可能收到“内存不足”的消息,或在运行某程序时出现相 同的错误消息。1. 单击“开始”,单击“设置”,单击“控制面板”,然后双击“系统”2. 在“系统属性”对话框中,单击“性能”选项卡,然后单击“虚拟内存” 按钮。3

45、. 选中“让 Windows 管理虚拟内存设置 (推荐 )”选项,将计算机中可 作为虚拟内存使用的硬盘空间量设置为默认值。此时,虚拟内存分页“win386.swp”能够根据实际内存的使用情况动态缩小和放大,最小容量为0,最大容量为硬盘的全部可用空间。4. 单击“确定”按钮。六、增加可用磁盘空间由于 Windows 以虚拟内存分页文件的格式使用硬盘空间以模拟 RAM() , 所以,尽管已设置为让 Windows 管理虚拟内存,但是当虚拟内存分页文件所在 的驱动器 (默认为 Windows 系统所在的硬盘分区 )没有足够的空间时,仍会出现“内存不足”的错误。此时,请执行以下一项 或多项操作, 增加

46、 Windows 虚拟内存分页文件所在驱动器上的可用空间 :1. 清空回收站,方法是 :在桌面上,右键单击“回收站” ,再单击“清空回收 站”。2. 从磁盘中删除临时文件,方法是 :打开“ Windows 资源管理器”或“我 的电脑”窗口,右键单击要释放其空间的磁盘,然后单击“属性” ,在“常规” 选项卡上,单击“磁盘清理”按钮,选中要删除的不需要的文件前的复选框,可 以阅读列表下面区域中每个文件类型的说明,单击“确定”按钮。3. 从磁盘中删除过期的文件或已存档的文件。4. 删除从未使用过的所有文件。七、程序文件被毁坏 如果仅仅是使用某个程序时,系统提示内存不足,而其他程序可以正常 运行,那么

47、可能的原因是该程序文件被毁坏, 从而导致内存问题。 然而 Windows 并没有确切地提示表明该程序已损坏, 所以请尝试删除并重新安装该程序, 然后 重新运行该程序。如果系统不再提示内存不足, 那么说明原程序文件确实被损坏。八、使用内存优化软件 内存优化软件有很多,比如 RAM Idle 和 Memo Kit 就是比较出色的两个。 这些软件都可以设置自动清空剪贴板、释放被关闭程序未释放的内存、对 Win386.swp 文件进行重新组织等,从而免除你手工操作的麻烦,达到自动释放 内存的目的,不妨一试!九、查杀病毒系统感染电脑病毒也是导致内存不足的罪魁祸首,当系统出现“内存不足” 的错误时, 请使

48、用最新的防毒软件查杀病毒, 或者在清除电脑病毒之一、 剪贴板 占用了太多的内存实际上,剪贴板是内存中的一块临时区域,当你在程序中使用了“复制”或 “剪切”命令后,Windows 将把复制或剪切的内容及其格式等信息暂时存储在剪贴板上,以供“粘贴” 使用。如果当前剪贴板中存放的是一幅图画, 则剪贴板就占用了不少的内存。 这时,请 按下述步骤清除剪贴板中的内容,释放其占用的内存资源1. 单击“开始”,指向“程序”或“所有程序” ,指向“附件”,指向“系统工 具”,然后单击“剪贴板查看程序”,打开“剪贴板查看程序”窗口。2. 在“编辑”菜单上, 单击“删除”命令。3. 关闭“剪贴板查看程序”窗口。为了与MicrosoftOffice程序提供的多重剪贴板相区分, 上述所说的剪贴板, 常被我们称为系统剪贴板。如果你正在使用MicrosOftOffice程序,而且使用了其多重剪贴板功能,那么你应清空“Office 剪贴板”上的项目,方法是在“ Office 剪贴板”任务窗格 (OfficeXP) 或工具栏 (Office2000) 上,单击“全部清空”或“清空剪贴板 ”。当清空“ Office剪

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论