欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验三存储管理系统.docx

    • 资源ID:1147892       资源大小:43.93KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验三存储管理系统.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) 当前计算机的实际内存大小为: 1

    4、.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权限的已调配私有内存区0013000

    11、0-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只有具有READONLY权

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

    14、ORD dwTarget)),将文件名显示出来,移动块指针获得下一块,依次这样循环下去,直至结束。 2. 虚拟内存的分配与释放能正确使用系统函数GetMeoryStatus()和数据结构MEMORY_STATUS了解系统内存和虚拟存储空间使用情况,会使用VirsualAlloc()函数和VirsualFree()函数分配和释放虚拟内存空间。步骤1:在VC 6.0环境下选择Win32 Console Application建立一个控制台工程文件,选择An application that Supports MFC。步骤2:编辑并编译完成后,单击“Build”菜单中的“Build GetMemor

    15、yStatus.exe”命令,建立GetMemoryStatus.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么? 答:操作能正常进行。_步骤3:在工具栏单击“Execute Program”按钮,执行GetMemoryStatus.cpp.exe程序。分析程序GetMemoryStatus.cpp的运行结果1) 请描述运行结果 (如果运行不成功,则可能的原因是什么?) :答:运行结果如下:Current Memory Status is : Total Physical Memory is 2047 MB Available Physical Memory is 2047

    16、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 is 22 %Now Allocate 32M Virsual Memory and 2M Physical MemoryCurrent Memory Status is : Total Physical Memory is 2047 MB Available Physical Memory is 2047 MB T

    17、otal Page File is 4095 MB Available Page File is 4095 MB Total Virtual Memory is 2047 MB Available Virsual memory is 1997 MB Memory Load is 22 %Now Release 32M Virsual Memory and 2M Physical MemoryCurrent Memory Status is : Total Physical Memory is 2047 MB Available Physical Memory is 2047 MB Total

    18、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 is 22 %Press any key to continue2) 根据运行输出结果,若要改变分配和回收的虚拟内存和物理内存的大小,要改变程序代码的语句,分别为:答:要改变的分配虚拟内存的程序代码语句为: if (BaseAddr=NULL) printf(Virsual Allocate Fail.n); str=(char *)

    19、malloc(1024*1024*2); GetMemSta();要改变的回收虚拟内存的程序代码语句为:if (:VirtualFree(BaseAddr,0,MEM_RELEASE)=0) printf(Release Allocate Fail.n); free(str); 3) 根据运行输出结果,对照分析5-2程序,可以看出程序运行的流程吗?请简单描述:答:程序开始运行,分配虚拟内存为32M,物理内存为2M,后进行虚拟内存释放,释放了32M虚拟内存,2M物理内存。 四、 2实验结论 通过本次实验了解windows Server 2003的内存结构和虚拟内存的管理,较为清楚的理解了在win

    20、dows sever 2003中虚拟内存的检测以及其内存分配和内存释放的运行过程。进而了解进程堆和windows为使用内存而提供的一些扩展功能。在程序运行的过程中,首先会检测到需要使用的虚拟内存,其次通过调用函数去分配当前部分所需要的虚拟内存大小,之后进行虚拟内存的分配,最后,运行结束,释放虚拟内存。在这整个过程中,能够节约内存的使用,增加了处理事务的效率。附录:5-2.cpp运行结果00010000-00012000 (8.00 KB) Committed, READWRITE, Private00012000-00020000 (56.0 KB) Free, NOACCESS0002000

    21、0-00021000 (4.00 KB) Committed, READWRITE, Private00021000-00030000 (60.0 KB) Free, NOACCESS00030000-0012c000 (0.98 MB) Reserved, READONLY, Private0012c000-0012d000 (4.00 KB) Committed, GUARD, READWRITE, Private0012d000-00130000 (12.0 KB) Committed, READWRITE, Private00130000-00135000 (20.0 KB) Comm

    22、itted, READONLY, Mapped00135000-00140000 (44.0 KB) Free, NOACCESS00140000-00147000 (28.0 KB) Committed, READWRITE, Private00147000-00240000 ( 996 KB) Reserved, READONLY, Private00240000-00243000 (12.0 KB) Committed, READWRITE, Mapped00243000-00250000 (52.0 KB) Reserved, READONLY, Mapped00250000-0026

    23、6000 (88.0 KB) Committed, READONLY, Mapped00266000-00270000 (40.0 KB) Free, NOACCESS00270000-002b1000 ( 260 KB) Committed, READONLY, Mapped002b1000-002c0000 (60.0 KB) Free, NOACCESS002c0000-00301000 ( 260 KB) Committed, READONLY, Mapped00301000-00310000 (60.0 KB) Free, NOACCESS00310000-00316000 (24.

    24、0 KB) Committed, READONLY, Mapped00316000-00320000 (40.0 KB) Free, NOACCESS00320000-00361000 ( 260 KB) Committed, READONLY, Mapped00361000-00370000 (60.0 KB) Free, NOACCESS00370000-00373000 (12.0 KB) Committed, READWRITE, Private00373000-00380000 (52.0 KB) Reserved, READONLY, Private00380000-0038300

    25、0 (12.0 KB) Committed, READONLY, Mapped00383000-00390000 (52.0 KB) Free, NOACCESS00390000-00398000 (32.0 KB) Committed, READWRITE, Private00398000-003a0000 (32.0 KB) Reserved, READONLY, Private003a0000-003a1000 (4.00 KB) Committed, READWRITE, Private003a1000-003b0000 (60.0 KB) Free, NOACCESS003b0000

    26、-003b1000 (4.00 KB) Committed, READWRITE, Private003b1000-003c0000 (60.0 KB) Free, NOACCESS003c0000-003c5000 (20.0 KB) Committed, READWRITE, Private003c5000-003d0000 (44.0 KB) Reserved, READONLY, Private003d0000-003d6000 (24.0 KB) Committed, READWRITE, Private003d6000-003e0000 (40.0 KB) Reserved, RE

    27、ADONLY, Private003e0000-00400000 ( 128 KB) Free, NOACCESS00400000-00401000 (4.00 KB) Committed, READONLY, Image, Module: 5-2.exe00401000-0046d000 ( 432 KB) Committed, EXECUTE_READ, Image0046d000-00475000 (32.0 KB) Committed, READONLY, Image00475000-0047c000 (28.0 KB) Committed, READWRITE, Image0047c

    28、000-00480000 (16.0 KB) Committed, READONLY, Image00480000-00487000 (28.0 KB) Committed, EXECUTE_READ, Mapped00487000-00540000 ( 740 KB) Reserved, READONLY, Mapped00540000-00542000 (8.00 KB) Committed, EXECUTE_READ, Mapped00542000-00548000 (24.0 KB) Reserved, READONLY, Mapped00548000-00550000 (32.0 K

    29、B) Free, NOACCESS00550000-00653000 (1.01 MB) Committed, READONLY, Mapped00653000-00660000 (52.0 KB) Free, NOACCESS00660000-006e1000 ( 516 KB) Committed, EXECUTE_READ, Mapped006e1000-00960000 (2.49 MB) Reserved, READONLY, Mapped00960000-00968000 (32.0 KB) Committed, READWRITE, Private00968000-00a6000

    30、0 ( 992 KB) Reserved, READONLY, Private00a60000-74ae0000 (1.81 GB) Free, NOACCESS74ae0000-74ae1000 (4.00 KB) Committed, READONLY, Image, Module: USP10.dll74ae1000-74b25000 ( 272 KB) Committed, EXECUTE_READ, Image74b25000-74b28000 (12.0 KB) Committed, WRITECOPY, Image74b28000-74b2a000 (8.00 KB) Committed, READWRITE, Image74b2a000-74b2e000 (16.0 KB) Committed, WRITECOPY, Image74b2e000-74b2f000 (4.00 KB) Committed, READWRITE, Image74b2f000-74b45000 (88.0 KB) Committ


    注意事项

    本文(实验三存储管理系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开