ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:44.11KB ,
资源ID:3235261      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3235261.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验三存储管理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验三存储管理.docx

1、实验三存储管理一、 实验名称 实验三:存储管理 1Windows Server 2003内存结构 2 Windows Server 2003虚拟内存二、 1实验目的1) 通过实验了解windows Server 2003内存的使用,学习如何在应用程序中管理内存、体会Windows应用程序内存的简单性和自我防护能力。2) 了解windows Server 2003的内存结构和虚拟内存的管理,进而了解进程堆和windows为使用内存而提供的一些扩展功能。三、 1实验内容1. 使用任务管理器终止进程2. 显示其他进程计数器3. 更改正在运行的程序的优先级四、 1实验步骤Windows提供了一个API

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

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

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

5、并终止程序的执行。五、 1实验结论通过本次实验我了解windows Server 2003内存的使用,同时学习了如何在应用程序中管理内存。在实验的过程中,体会到了Windows应用程序内存的简单性和自我防护能力。对于Windows sever 2003的内存结构有了一定的了解。二、2实验目的1)通过实验了解Windows Server 2003内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力。2)学习检查虚拟内存空间或对其进行操作。3)了解Windows Server 2003的内存结构和虚拟内存的管理,进而了解进程堆和Windows为使用内存而提

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

7、内存的特性。虚拟内存中的块由VirsualQueryEX()API定义成连续快或具有相同状态(自由区,已调配区等)的内存,并分配以一组统一的保护标志(只读、可执行等)。步骤4:单击“Build”菜单中的“Compile 5-2.cpp”命令,并单击“是”按钮确认。系统对5-2.cpp进行编译。步骤5:编译完成后,单击“Build”菜单中的“Build 5-2.exe”命令,建立5-2.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么? 答:操作能正常运行。_步骤6:在工具栏单击“Execute Program” (执行程序) 按钮,执行5-2.exe程序。1)分析运行结果(如果

8、运行不成功,则可能的原因是什么)按committed,reserved,free等三种虚拟地址空间分别记录实验数据,其中“描述”是对该组数据的简单描述,例如,对下列一组数据:00010000-00012000Committed,READWRITE,Private可描述为:具有READWRITE权限的已调配私有内存区。将系统当前的自由区(Free)虚拟地址空间填入表3-3中。表3-3 实验记录地址大小虚拟空间类型访问权限描述00012000-0002000056.0KBfreeNOACCESS没有任何权限的已调配的共有内存区00021000-0003000060.0 KBfreeNOACCESS

9、没有任何权限的已调配的共有内存区00135000-0014000044.0 KBfreeNOACCESS没有任何权限的已调配的共有内存区00266000-0027000040.0 KBfreeNOACCESS没有任何权限的已调配的共有内存区002b1000-002c000060.0 KBfreeNOACCESS没有任何权限的已调配的共有内存区00301000-0031000060.0 KBfreeNOACCESS没有任何权限的已调配的共有内存区00316000-0032000040.0 KBfreeNOACCESS没有任何权限的已调配的共有内存区将系统当前的已调配区(Committed)虚拟地

10、址空间填入表3-4中。表3-4 实验记录地址大小虚拟空间类型访问权限描述00010000-000120008.00KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区00020000-000210004.00 KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区0012c000-0012d0004.00 KBCommittedPrivate具有GUARD,READEWRITE权限的已调配私有内存区0012d000-0013000012.0 KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区0013

11、0000-0013500020.0 KBCommittedMapped只有具有READONLY权限的已调配映射内存区00140000-0014700028.0 KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区00240000-0024300012.0 KBCommittedMapped只有具有READWRITE权限的已调配映射内存区将系统当前的保留区(Reserved)虚拟地址空间填入表3-5中。表3-5 实验记录地址大小虚拟空间类型访问权限描述00030000-0012c0000.98 MBReservedPrivate只有具有READONLY权限的已调配

12、私有内存区00147000-00240000996 KBReservedPrivate只有具有READONLY权限的已调配私有内存区00243000-0025000052.0 KBReservedMapped只有具有READONLY权限的已调配映射内存区00373000-0038000052.0 KBReservedPrivate只有具有READONLY权限的已调配私有内存区00398000-003a000032.0 KBReservedPrivate只有具有READONLY权限的已调配私有内存区003c5000-003d000044.0 KBReservedPrivate只有具有READON

13、LY权限的已调配私有内存区003d6000-003e000040.0 KBReservedPrivate只有具有READONLY权限的已调配私有内存区2)从上述输出结果,对照分析清单5-2的程序,请简单描述程序运行的流程: 答:该程序从主函数Main()出发,调用void WalkVM(HANDLE hProcess)函数,void WalkVM(HANDLE hProcess)函数获得系统信息,分配应用程序内存地址空间。然后开始做循环,从函数运行开始每次获得下一个虚拟程序内存块的信息,之后计算块的结尾及大小,然后再显示块的大小与位置,状态,显示保护方式(void ShowProtection

14、(DWORD dwTarget)),将文件名显示出来,移动块指针获得下一块,依次这样循环下去,直至结束。 2. 虚拟内存的分配与释放能正确使用系统函数GetMeoryStatus()和数据结构MEMORY_STATUS了解系统内存和虚拟存储空间使用情况,会使用VirsualAlloc()函数和VirsualFree()函数分配和释放虚拟内存空间。步骤1:在VC 6.0环境下选择Win32 Console Application建立一个控制台工程文件,选择An application that Supports MFC。步骤2:编辑并编译完成后,单击“Build”菜单中的“Build GetMemoryStatus.exe”命令,建立GetMemoryStatus.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么? 答:操作能正常进行。_步骤3:在工具栏单击“Execute Program”按钮,执行GetMemoryStatus.cpp.exe程序。分析程序GetMemoryStatus.cpp的运行结果1) 请描述运行结果 (如果运行不成功,则可能的原因

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1