好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验三存储管理.doc

17页
  • 卖家[上传人]:cl****1
  • 文档编号:552922567
  • 上传时间:2023-06-28
  • 文档格式:DOC
  • 文档大小:207KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 一、实验名称实验三:存储管理[1]WindowsServer2003内存结构[2]WindowsServer2003虚拟内存二、[1]实验目的1)通过实验了解windowsServer2003内存的使用,学习如何在应用程序中管理内存、体会Windows应用程序内存的简单性和自我防护能力2)了解windowsServer2003的内存结构和虚拟内存的管理,进而了解进程堆和windows为使用内存而提供的一些扩展功能三、[1]实验内容1. 使用任务管理器终止进程2. 显示其他进程计数器3. 更改正在运行的程序的优先级四、[1]实验步骤Windows提供了一个API即GetSystemInfo(),以便用户能检查系统中虚拟内存的一些特性程序5-1显示了如何调用该函数以及显示系统中当前内存的参数步骤1:登录进入WindowsServer2003步骤2:在“开始”菜单中单击“程序”-“MicrosoftVisualStudio6.0”-“MicrosoftVisualC++6.0”命令,进入VisualC++窗口步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序5-1.cpp。

      程序5-1:获取有关系统的内存设置的信息步骤4:单击“Build”菜单中的“Compile5-1.cpp”命令,并单击“是”按钮确认系统对4-1.cpp进行编译步骤5:编译完成后,单击“Build”菜单中的“Build5-1.exe”命令,建立5-1.exe可执行文件操作能否正常进行?如果不行,则可能的原因是什么?答:操作能正常进行步骤6:在工具栏单击“ExecuteProgram”(执行程序)按钮,执行5-1.exe程序运行结果(分行书写如果运行不成功,则可能的原因是什么?):1)虚拟内存每页容量为:4.00KB2)最小应用地址:0x000100003)最大应用地址为:0x7ffeffff4)当前可供应用程序使用的内存空间为:3.92GB5)当前计算机的实际内存大小为:1.99GB阅读和分析程序5-1,请回答问题:1)理论上每个windows应用程序可以独占的最大存储空间是:4GB2)在程序5-1中,用于检索系统中虚拟内存特性的API函数是:DWORD提示:可供应用程序使用的内存空间实际上已经减去了开头与结尾两个64KB的保护区虚拟内存空间中的64KB保护区是防止编程错误的一种Windows方式。

      任何对内存中这一区域的访问(读、写、执行)都将引发一个错误陷井,从而导致错误并终止程序的执行也就是说,假如用户有一个NULL指针(地址为0),但仍试图在此之前很近的地址处使用另一个指针,这将因为试图从更低的保留区域读写数据,从而产生意外错误并终止程序的执行五、[1]实验结论通过本次实验我了解windowsServer2003内存的使用,同时学习了如何在应用程序中管理内存在实验的过程中,体会到了Windows应用程序内存的简单性和自我防护能力对于Windowssever2003的内存结构有了一定的了解二、[2]实验目的1)通过实验了解WindowsServer2003内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力2)学习检查虚拟内存空间或对其进行操作3)了解WindowsServer2003的内存结构和虚拟内存的管理,进而了解进程堆和Windows为使用内存而提供的一些扩展功能三、[2]实验内容与实验步骤1.虚拟内存的检测清单5-2所示的程序使用VirtualQueryEX()函数来检查虚拟内存空间步骤1:登录进入WindowsServer2003。

      步骤2:在“开始”菜单中单击“程序”-“MicrosoftVisualStudio6.0”-“MicrosoftVisualC++6.0”命令,进入VisualC++窗口步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序5-2.cpp清单5-2检测进程的虚拟地址空间清单5-2中显示一个walkVM()函数开始于某个进程可访问的最低端虚拟地址处,并在其中显示各块虚拟内存的特性虚拟内存中的块由VirsualQueryEX()API定义成连续快或具有相同状态(自由区,已调配区等)的内存,并分配以一组统一的保护标志(只读、可执行等)步骤4:单击“Build”菜单中的“Compile5-2.cpp”命令,并单击“是”按钮确认系统对5-2.cpp进行编译步骤5:编译完成后,单击“Build”菜单中的“Build5-2.exe”命令,建立5-2.exe可执行文件操作能否正常进行?如果不行,则可能的原因是什么?答:操作能正常运行步骤6:在工具栏单击“ExecuteProgram”(执行程序)按钮,执行5-2.exe程序1)分析运行结果(如果运行不成功,则可能的原因是什么)按committed,reserved,free等三种虚拟地址空间分别记录实验数据,其中“描述”是对该组数据的简单描述,例如,对下列一组数据:00010000-00012000<8.00KB>Committed,READWRITE,Private可描述为:具有READWRITE权限的已调配私有内存区。

      将系统当前的自由区(Free)虚拟地址空间填入表3-3中表3-3实验记录地址大小虚拟空间类型访问权限描述000120000002000056.0KBfreeNOACCESS没有任何权限的已调配的共有内存区000210000003000060.0KBfreeNOACCESS没有任何权限的已调配的共有内存区001350000014000044.0KBfreeNOACCESS没有任何权限的已调配的共有内存区002660000027000040.0KBfreeNOACCESS没有任何权限的已调配的共有内存区002b1000-002c000060.0KBfreeNOACCESS没有任何权限的已调配的共有内存区00301000-60.0KBfreeNOACCESS没有任何权限的已00310000调配的共有内存区003160000032000040.0KBfreeNOACCESS没有任何权限的已调配的共有内存区将系统当前的已调配区(Committed)虚拟表3-4实!地址空间填入表3-4中验记录地址大小虚拟空间类型访问权限描述00010000000120008.00KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区00020000000210004.00KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区0012C000-0012d0004.00KBCommittedPrivate具有GUARD,READEWRITE权限的已调配私有内存区0012d000-0013000012.0KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区001300000013500020.0KBCommittedMapped只有具有READONLY权限的已调配映射内存区001400000014700028.0KBCommittedPrivate只有具有READWRITE权限的已调配私有内存区002400000024300012.0KBCommittedMapped只有具有READWRITE权限的已调配映射内存区将系统当前的保留区(Reserved)虚拟地址表3-5实!:空间填入表3-5中。

      验记录地址大小虚拟空间类型访问权限描述000300000012C0000.98MBReservedPrivate只有具有READONLY权限的已调配私有内存区0014700000240000996KBReservedPrivate只有具有READONLY权限的已调配私有内存区002430000025000052.0KBReservedMapped只有具有READONLY权限的已调配映射内存区003730000038000052.0KBReservedPrivate只有具有READONLY权限的已调配私有内存区0039800032.0KBReservedPrivate只有具有003a0000READONLY权限的已调配私有内存区OO3C5OO0003d000044.0KBReservedPrivate只有具有READONLY权限的已调配私有内存区003d6000-003e000040.0KBReservedPrivate只有具有READONLY权限的已调配私有内存区2)从上述输出结果,对照分析清单5-2的程序,请简单描述程序运行的流程:答:该程序从主函数Main()出发,调用voidWalkVM(HANDLEhProcess)函数,voidWalkVM(HANDLEhProcess)函数获得系统信息,分配应用程序内存地址空间。

      然后开始做循环,从函数运行开始每次获得下一个虚拟程序内存块的信息,之后计算块的结尾及大小,然后再显示块的大小与位置,状态,显示保护方式(voidShowProtection(DWORDdwTarget)),将文件名显示出来,移动块指针获得下一块,依次这样循环下去,直至结束2.虚拟内存的分配与释放能正确使用系统函数GetMeoryStatus()和数据结构MEMORY_STATUS了解系统内存和虚拟存储空间使用情况,会使用VirsualAlloc()函数和VirsualFree()函数分配和释放虚拟内存空间步骤1:在VC6.0环境下选择Win32ConsoleApplication建立一个控制台工程文件,选择AnapplicationthatSupportsMFC步骤2:编辑并编译完成后,单击“Build”菜单中的“BuildGetMemoryStatus.exe”命令,建立GetMemoryStatus.exe可执行文件操作能否正常进行?如果不行,则可能的原因是什么?答:操作能正常进行步骤3:在工具栏单击“ExecuteProgram”按钮,执行GetMemoryStatus.cpp.exe程序。

      分析程序GetMemoryStatus.cpp的运行结果1)请描述运行结果(如果运行不成功,则可能的原因是什么?):答:运行结果如下:CurrentMemoryStatusis:TotalPhysicalMemoryis2047MBAvailablePhysicalMemoryis2047MBTotalPageFileis4095MBAvailablePageFileis4095MBTotalVirtualMemoryis2047MBAvailableVirsualmemoryis2031MBMemoryLoadis22。

      点击阅读更多内容
      相关文档
      2025国开山东开大《土质学与土力学》形成性考核123答案+终结性考核答案.docx 中学综合素质知识点梳理【中学教师资格证】.docx 2025国开山东开大《特许经营概论》形成性考核123答案+终结性考核答案.doc 2025年高考英语全国一卷真题(含答案).docx 2025国开山东《农民专业合作社创建与管理》形成性考核123答案+终结性考核答案.docx 2025国开山东开大《自然现象探秘》形成性考核123答案+终结性考核答案.docx 2025国开山东《消费心理学》形成性考核123答案+终结性考核答案.doc 2025国开山东《小微企业管理》形成性考核123答案+终结性考核答案.doc 2025国开山东开大《资本经营》形成性考核123答案+终结性考试答案.docx 2025国开山东《小学生心理健康教育》形考123答案+终结性考试答案.docx 2025国开《视频策划与制作》形考任务1-4答案.docx 2025国开《亲子关系与亲子沟通》形考任务234答案+期末大作业答案.docx 2025国开电大《煤矿地质》形成性考核123答案.docx 2025国开电大《冶金原理》形考任务1234答案.docx 2025国开《在线学习项目运营与管理》形考任务1234答案.doc 2025国开电大《在线教育的理论与实践》阶段测验1-4答案.docx 2024 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 环保工程师---2023 年注册环保工程师《专业基础考试》真题及答案解析【完整版】.docx 2025国开《液压与气压传动》形考任务一参考答案.docx 2025年春江苏开放大学教育研究方法060616计分:形成性作业2、3答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.