实验三:存储管理.pdf

上传人:ylj18****41534 文档编号:72840258 上传时间:2023-02-13 格式:PDF 页数:10 大小:812.17KB
返回 下载 相关 举报
实验三:存储管理.pdf_第1页
第1页 / 共10页
实验三:存储管理.pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《实验三:存储管理.pdf》由会员分享,可在线阅读,更多相关《实验三:存储管理.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 实验三:存储管理 IMB standardization office【IMB 5AB-IMBK 08-IMB 2C】一、实验名称 实验三:存储管理 1Windows Server 2003内存结构 2 Windows Server 2003虚拟内存 二、1实验目的 1)通过实验了解 windows Server 2003 内存的使用,学习如何在应用程序中管理内存、体会 Windows应用程序内存的简单性和自我防护能力。2)了解 windows Server 2003的内存结构和虚拟内存的管理,进而了解进程堆和windows为使用内存而提供的一些扩展功能。三、1实验内容 四、1实验步骤 Wi

2、ndows 提供了一个 API即 GetSystemInfo(),以便用户能检查系统中虚拟内存的一些特性。程序 5-1显示了如何调用该函数以及显示系统中当前内存的参数。步骤 1:登录进入 Windows Server 2003 。步骤 2:在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”“Microsoft Visual C+6.0”命令,进入 Visual C+窗口。步骤 3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序。程序 5-1:获取有关系统的内存设置的信息 步骤 4:单击“Build”菜单中的“Compile”命令,并单击“

3、是”按钮确认。系统对进行编译。步骤 5:编译完成后,单击“Build”菜单中的“Build”命令,建立可执行文件。操作能否正常进行如果不行,则可能的原因是什么 答:操作能正常进行。_ 步骤 6:在工具栏单击“Execute Program”(执行程序)按钮,执行程序。运行结果(分行书写。如果运行不成功,则可能的原因是什么?):1)虚拟内存每页容量为:2)最小应用地址:0 x00010000 3)最大应用地址为:0 x7ffeffff 4)当前可供应用程序使用的内存空间为:5)当前计算机的实际内存大小为:阅读和分析程序 5-1,请回答问题:1)理论上每个 windows 应用程序可以独占的最大存

4、储空间是:_4GB_ 2)在程序 5-1中,用于检索系统中虚拟内存特性的 API函数是:DWORD 提示:可供应用程序使用的内存空间实际上已经减去了开头与结尾两个 64KB 的保护区。虚拟内存空间中的 64KB 保护区是防止编程错误的一种 Windows 方式。任何对内存中这一区域的访问(读、写、执行)都将引发一个错误陷井,从而导致错误并终止程序的执行。也就是说,假如用户有一个 NULL 指针(地址为 0),但仍试图在此之前很近的地址处使用另一个指针,这将因为试图从更低的保留区域读写数据,从而产生意外错误并终止程序的执行。五、1实验结论 通过本次实验我了解 windows Server 200

5、3 内存的使用,同时学习了如何在应用程序中管理内存。在实验的过程中,体会到了 Windows 应用程序内存的简单性和自我防护能力。对于 Windows sever 2003 的内存结构有了一定的了解。二、2实验目的 1)通过实验了解 Windows Server 2003 内存的使用,学习如何在应用程序中管理内存,体会 Windows应用程序内存的简单性和自我防护能力。2)学习检查虚拟内存空间或对其进行操作。3)了解 Windows Server 2003的内存结构和虚拟内存的管理,进而了解进程堆和Windows 为使用内存而提供的一些扩展功能。三、2实验内容与实验步骤 1.虚拟内存的检测 清

6、单 5-2所示的程序使用 VirtualQueryEX()函数来检查虚拟内存空间。步骤 1:登录进入 Windows Server 2003。步骤 2:在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”“Microsoft Visual C+6.0”命令,进入 Visual C+窗口。步骤 3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序。清单 5-2 检测进程的虚拟地址空间 清单 5-2中显示一个 walkVM()函数开始于某个进程可访问的最低端虚拟地址处,并在其中显示各块虚拟内存的特性。虚拟内存中的块由 VirsualQueryEX

7、()API 定义成连续快或具有相同状态(自由区,已调配区等)的内存,并分配以一组统一的保护标志(只读、可执行等)。步骤 4:单击“Build”菜单中的“Compile”命令,并单击“是”按钮确认。系统对进行编译。步骤 5:编译完成后,单击“Build”菜单中的“Build”命令,建立可执行文件。操作能否正常进行如果不行,则可能的原因是什么 答:操作能正常运行。_ 步骤 6:在工具栏单击“Execute Program”(执行程序)按钮,执行程序。1)分析运行结果(如果运行不成功,则可能的原因是什么)按 committed,reserved,free等三种虚拟地址空间分别记录实验数据,其中“描述

8、”是对该组数据的简单描述,例如,对下列一组数据:可描述为:具有 READWRITE 权限的已调配私有内存区。将系统当前的自由区(Free)虚拟地址空间填入表 3-3中。表 3-3 实验记录 地址 大小 虚拟空间类型 访问权限 描述 free NOACCESS 没有任何权限的已调配的共有内存区 KB free NOACCESS 没有任何权限的已调配的共有内存区 KB free NOACCESS 没有任何权限的已调配的共有内存区 KB free NOACCESS 没有任何权限的已调配的共有内存区 002b-002c KB free NOACCESS 没有任何权限的已调配的共有内存区 KB free

9、 NOACCESS 没有任何权限的已调配的共有内存区 KB free NOACCESS 没有任何权限的已调配的共有内存区 将系统当前的已调配区(Committed)虚拟地址空间填入表 3-4中。表 3-4 实验记录 地址 大小 虚拟空间类型 访问权限 描述 Committed Private 只有具有READWRITE 权限的已调配私有内存区 KB Committed Private 只有具有READWRITE 权限的已调配私有内存区 0012c000-0012d000 KB Committed Private 具有GUARD,READEWRITE权限的已调配私有内存区 KB Committe

10、d Private 只有具有READWRITE 权限的已调配私有内存区 KB Committed Mapped 只有具有READONLY 权限 的已调配映射内存区 KB Committed Private 只有具有READWRITE 权限的已调配私有内存区 KB Committed Mapped 只有具有READWRITE 权限的已调配映射内存区 将系统当前的保留区(Reserved)虚拟地址空间填入表 3-5中。表 3-5 实验记录 地址 大小 虚拟空间类型 访问权限 描述 000-0012c MB Reserved Private 只有具有READONLY 权限 的已调配私有内存区 996

11、 KB Reserved Private 只有具有READONLY 权限 的已调配私有内存区 KB Reserved Mapped 只有具有READONLY 权限 的已调配映射内存区 KB Reserved Private 只有具有READONLY 权限 的已调配私有内存区 00-003a00 KB Reserved Private 只有具有READONLY 权限 的已调配私有内存区 003c5000-003d0000 KB Reserved Private 只有具有READONLY 权限 的已调配私有内存区 003d6000-003e0000 KB Reserved Private 只有具有

12、READONLY 权限 的已调配私有内存区 2)从上述输出结果,对照分析清单 5-2的程序,请简单描述程序运行的流程:答:该程序从主函数 Main()出发,调用 void WalkVM(HANDLE hProcess)函数,void WalkVM(HANDLE hProcess)函数获得系统信息,分配应用程序内存地址空间。然后开始做循环,从函数运行开始每次获得下一个虚拟程序内存块的信息,之后计算块的结尾及大小,然后再显示块的大小与位置,状态,显示保护方式(void ShowProtection(DWORD dwTarget)),将文件名显示出来,移动块指针获得下一块,依次这样循环下去,直至结束

13、。2.虚拟内存的分配与释放 能正确使用系统函数 GetMeoryStatus()和数据结构 MEMORY_STATUS了解系统内存和虚拟存储空间使用情况,会使用 VirsualAlloc()函数和 VirsualFree()函数分配和释放虚拟内存空间。步骤 1:在 VC 环境下选择 Win32 Console Application 建立一个控制台工程文件,选择 An application that Supports MFC。步骤 2:编辑并编译完成后,单击“Build”菜单中的“Build”命令,建立可执行文件。操作能否正常进行如果不行,则可能的原因是什么 答:操作能正常进行。_ 步骤 3

14、:在工具栏单击“Execute Program”按钮,执行程序。分析程序的运行结果 1)请描述运行结果(如果运行不成功,则可能的原因是什么?):答:运行结果如下:Current Memory Status is:Total Physical Memory is 2047 MB Available Physical Memory is 2047 MB Total Page File is 4095 MB Available Page File is 4095 MB Total Virtual Memory is 2047 MB Available Virsual memory is 2031 M

15、B Memory Load is 22%Now Allocate 32M Virsual Memory and 2M Physical Memory Current Memory Status is:Total Physical Memory is 2047 MB Available Physical Memory is 2047 MB Total Page File is 4095 MB Available Page File is 4095 MB Total Virtual Memory is 2047 MB Available Virsual memory is 1997 MB Memo

16、ry Load is 22%Now Release 32M Virsual Memory and 2M Physical Memory Current Memory Status is:Total Physical Memory is 2047 MB Available Physical Memory is 2047 MB Total Page File is 4095 MB Available Page File is 4095 MB Total Virtual Memory is 2047 MB Available Virsual memory is 2031 MB Memory Load

17、 is 22%Press any key to continue 2)根据运行输出结果,若要改变分配和回收的虚拟内存和物理内存的大小,要改变程序代码的语句,分别为:答:要改变的分配虚拟内存的程序代码语句为:if(BaseAddr=NULL)printf(Virsual Allocate Fail.n);str=(char*)malloc(1024*1024*2);GetMemSta();要改变的回收虚拟内存的程序代码语句为:if(:VirtualFree(BaseAddr,0,MEM_RELEASE)=0)printf(Release Allocate Fail.n);free(str);3)

18、根据运行输出结果,对照分析 5-2程序,可以看出程序运行的流程吗?请简单描述:答:程序开始运行,分配虚拟内存为 32M,物理内存为 2M,后进行虚拟内存释放,释放了 32M 虚拟内存,2M 物理内存。四、2实验结论 通过本次实验了解 windows Server 2003 的内存结构和虚拟内存的管理,较为清楚的理解了在 windows sever 2003 中虚拟内存的检测以及其内存分配和内存释放的运行过程。进而了解进程堆和 windows 为使用内存而提供的一些扩展功能。在程序运行的过程中,首先会检测到需要使用的虚拟内存,其次通过调用函数去分配当前部分所需要的虚拟内存大小,之后进行虚拟内存的

19、分配,最后,运行结 束,释放虚拟内存。在这整个过程中,能够节约内存的使用,增加了处理事务的效率。附录:运行结果 000-0012c MB)Reserved,READONLY,Private 0012c000-0012d000 KB)Committed,GUARD,READWRITE,Private 00270000-002b1000(260 KB)Committed,READONLY,Mapped 002b-002c KB)Free,NOACCESS 00398000-003a0000 KB)Reserved,READONLY,Private 003a0000-003a1000 KB)Comm

20、itted,READWRITE,Private 003a1000-003b0000 KB)Free,NOACCESS 003b0000-003b1000 KB)Committed,READWRITE,Private 003b1000-003c0000 KB)Free,NOACCESS 003c0000-003c5000 KB)Committed,READWRITE,Private 003c5000-003d0000 KB)Reserved,READONLY,Private 003d0000-003d6000 KB)Committed,READWRITE,Private 003d6000-003

21、e0000 KB)Reserved,READONLY,Private 00401000-0046d000(432 KB)Committed,EXECUTE_READ,Image 00475000-0047c000 KB)Committed,READWRITE,Image 00660000-006e1000(516 KB)Committed,EXECUTE_READ,Mapped 00968000-00a60000(992 KB)Reserved,READONLY,Private 00a60000-74ae0000 GB)Free,NOACCESS 74ae0000-74ae1000 KB)Co

22、mmitted,READONLY,Image,Module:74ae1000-74b25000(272 KB)Committed,EXECUTE_READ,Image 74b25000-74b28000 KB)Committed,WRITECOPY,Image 74b28000-74b2a000 KB)Committed,READWRITE,Image 74b2a000-74b2e000 KB)Committed,WRITECOPY,Image 74b2e000-74b2f000 KB)Committed,READWRITE,Image 74b2f000-74b45000 KB)Committ

23、ed,READONLY,Image 7619d000-76eb0000 MB)Free,NOACCESS 76eb0000-76eb1000 KB)Committed,READONLY,Image,Module:76eb1000-76ec0000 KB)Committed,EXECUTE_READ,Image 76ec0000-76ec1000 KB)Committed,READWRITE,Image 76ec1000-76ec3000 KB)Committed,READONLY,Image 76ec3000-77b70000 MB)Free,NOACCESS 77b70000-77b7100

24、0 KB)Committed,READONLY,Image,Module:77b71000-77bbf000(312 KB)Committed,EXECUTE_READ,Image 77bbf000-77bc1000 KB)Committed,WRITECOPY,Image 77bc1000-77bc2000 KB)Committed,READWRITE,Image 77bc2000-77bc3000 KB)Committed,WRITECOPY,Image 77bc3000-77bc6000 KB)Committed,READWRITE,Image 77bc6000-77bca000 KB)

25、Committed,READONLY,Image 77bca000-77bd0000 KB)Free,NOACCESS 77bd0000-77bd1000 KB)Committed,READONLY,Image,Module:77bd1000-77c14000(268 KB)Committed,EXECUTE_READ,Image 77c14000-77c16000 KB)Committed,READWRITE,Image 77c16000-77c19000 KB)Committed,READONLY,Image 77c19000-77c20000 KB)Free,NOACCESS 77c20

26、000-77c21000 KB)Committed,READONLY,Image,Module:77c21000-77cba000(612 KB)Committed,EXECUTE_READ,Image 77cba000-77cbb000 KB)Committed,READWRITE,Image 77cbb000-77cc1000 KB)Committed,READONLY,Image 77cc1000-77e10000 MB)Free,NOACCESS 77e10000-77e11000 KB)Committed,READONLY,Image,Module:77e11000-77e71000

27、(384 KB)Committed,EXECUTE_READ,Image 77e71000-77e72000 KB)Committed,READWRITE,Image 77e72000-77e73000 KB)Committed,WRITECOPY,Image 77e73000-77ea0000(180 KB)Committed,READONLY,Image 77ea0000-77eb0000 KB)Free,NOACCESS 77eb0000-77eb1000 KB)Committed,READONLY,Image,Module:77eb1000-77efb000(296 KB)Commit

28、ted,EXECUTE_READ,Image 77efb000-77efc000 KB)Committed,READWRITE,Image 77efc000-77efd000 KB)Committed,WRITECOPY,Image 77efd000-77f02000 KB)Committed,READONLY,Image 77f02000-77f30000(184 KB)Free,NOACCESS 77f30000-77f31000 KB)Committed,READONLY,Image,Module:77f31000-77fa1000(448 KB)Committed,EXECUTE_RE

29、AD,Image 77fa1000-77fa3000 KB)Committed,READWRITE,Image 77fa3000-77fa5000 KB)Committed,WRITECOPY,Image 77fa5000-77fdc000(220 KB)Committed,READONLY,Image 77fdc000-7c800000 MB)Free,NOACCESS 7c800000-7c801000 KB)Committed,READONLY,Image,Module:7c801000-7c88b000(552 KB)Committed,EXECUTE_READ,Image 7c88b

30、000-7c88e000 KB)Committed,READWRITE,Image 7c88e000-7c890000 KB)Committed,WRITECOPY,Image 7c890000-7c92b000(620 KB)Committed,READONLY,Image 7c92b000-7c930000 KB)Free,NOACCESS 7c930000-7c931000 KB)Committed,READONLY,Image,Module:7c931000-7c9ba000(548 KB)Committed,EXECUTE_READ,Image 7c9ba000-7c9bd000 K

31、B)Committed,READWRITE,Image 7c9bd000-7c9be000 KB)Committed,WRITECOPY,Image 7c9be000-7c9bf000 KB)Committed,READWRITE,Image 7c9bf000-7c9c0000 KB)Committed,WRITECOPY,Image 7c9c0000-7ca03000(268 KB)Committed,READONLY,Image 7ca03000-7f000000 MB)Free,NOACCESS 7f000000-7f001000 KB)Committed,READONLY,Image,

32、Module:7f001000-7f006000 KB)Committed,EXECUTE_READ,Image 7f006000-7f007000 KB)Committed,READWRITE,Image 7f007000-7f009000 KB)Committed,READONLY,Image 7f009000-7f6f0000 MB)Free,NOACCESS 7f6f0000-7f6f7000 KB)Committed,EXECUTE_READ,Mapped 7f6f7000-7f7f0000(996 KB)Reserved,READONLY,Mapped 7f7f0000-7ffa0

33、000 MB)Free,NOACCESS 7ffa0000-7ffd3000(204 KB)Committed,READONLY,Mapped 7ffd3000-7ffda000 KB)Free,NOACCESS 7ffda000-7ffdb000 KB)Committed,READWRITE,Private 7ffdb000-7ffdf000 KB)Free,NOACCESS 7ffdf000-7ffe0000 KB)Committed,READWRITE,Private 7ffe0000-7ffe1000 KB)Committed,READONLY,Private 7ffe1000-7fff0000 KB)Reserved,NOACCESS,Private Press any key to continue

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁