欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    《存储管理》实验指导书(模板).pdf

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

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

    《存储管理》实验指导书(模板).pdf

    实验 5 存储管理-Windows xp 虚拟内存(实践估计时间:100 分钟)5.1 背景知识 在Windows xp 环境下,4GB 的虚拟址空间被划分成两个部分:低端2GB提供给进程使用,高端 2GB 提供给系统使用。这意味着用户的应用程序代码,包括 DLL 以及进程使用的各种数据等,都装在用户进程地址空间内(低端 2GB),用户过程的虚拟地址空间也被分成三个部分:1)虚拟内存的已调配区(committed):具有备用的物理内存,根据该区域设定的访问权限,用户可以进行写、读或在其中执行程序等操作。2)虚拟内存的保留区(researved):没有备用的物理内存,但有一定的访问权限。3)虚 拟 内 存 的 自 由 区 (free):不 限 定 其 用 途 ,有 相 应 的 PAGE_NOAC_CESS 权限。与虚拟内存区相关的访问权限告知系弘进程可在内存中进行何种类型的操作。例如:用户不能在只有 PAGE_READONLY 权限的区域上进行写操作或执行程序:也不能在只有 PAGE_EXECUTE 权限的区域里进行读、写操作。而具有 PAGE_NOACESS 权限的特殊区域,则意味着不允许进程对其地址进行任何操作。在 进 程 装 入 之 前,整 个 虚 拟 内 存 的 地 址 空 间 都 被 设 置 为只 有 PAGE_NOACESS 权限的自由区域。当系统装入进程代码和数据后,才将内存地址的空间标记为已调配区或保留区,并将诸如 EXECUTE、READWRITE和 READONLY 的权限与这些区域相关联。如表 5-1 所示,给出了 MEMORY_BASIC_INFORMATION 的结构,此数据描述了进程虚拟内存空间中一组虚拟内存页面的当前状态,其中 State项表明这些区域是否为自由区、已调配区或保留区;Protect 项则包含了 Windows 系统为这些区域添加了何种访问保护;Type 项则表明这些区域是可执行图像、内存映射文件还是简单的私有内存,VirtualQueryEX()API 能让用户在指定的进程中,对虚拟内存地址的大小和属性进行检测。Windows 还提供了一整套能使用户精确控制应用程序的虚拟地址空间 API,一些用于虚拟内存操作及检测的 API 如表 5-2 所示。表 5-1 MEMORY_BASIC_INFORMATION 结构的成员 成员名称 目的 PVOID BaseAddress 虚拟内存开始处的指针 PVOID AllocationBase 如果这个特定的区域为子分配区的话,则为虚拟内存外面区 域的指针;否则此值与 BaseAddress 相同 DWORD AllocationProtect 虚拟内存最初分配区域的保护属性。其可能值包括:PAGE_NOACESS,PAGE_READONLY,PAGE_READWRITTE 和 PAGE_EXECUTE_READ。DWORD RegionSize 虚拟内存区域的字节数 DWORD State 区 域 的 当 前 分 配 状 态,其 可 能 值 为 MEM_COMMIT,MEM_FREE 和 MEM_RESERVE DWORD Protect 虚拟内存当前区域的保护属性,可能值与 AllocationProtect 成员相同 DWORD Type 虚拟内存区域中出现的页面类型,可能值为 MEM_IMAGE,MEM_MAPPED 和 MEM_PRIVATE 表 5-2 虚拟内存的 API API 名称 描 述 VirtualQueryEx()通过填充 MEMORY_BASIC_INFORMATION 结 构检测进程内虚拟内存的区域 VirtualAlloc()保留或调配进程的部分虚拟内存,设置分配和保 护标志 VirtualFree()释放或收回应用程序使用的部分虚拟地址 VirtualProtect()改变虚拟内存区域保护规范 VirtualLock()防止系统将虚拟内存区域通过系统交换到页面文 件中 VirtualUnlock()释放虚拟内存的锁定区域,必要时,允许系统将 其交换到页面文件中 提供虚拟内存分配功能的是 VirtualAlloc()API,该 API 支持用户向系统要 求 新 的 虚 拟 内 存 或 改 变 已 分 配 内 存 的 当 前 状 态,用户若想 通过 VirtualAlloc()API 函数使用虚拟内存,可以采用两种方式能知系统:1)简单地将内存内容保存在地址空间内。2)请求系统返回带有物理存储区(RAM 的空间或换页文件)的部分地址空间。用户可以用 flAllocation Type 参数(commit 和 reserve)来定义这些方式,用户可以通知 Windows 按只读、读写、不可读写、执行或特殊方式来处理新的虚拟内存。与 VirtualAlloc()函数对应的是 VirtualFree()函数,其作用是释放虚拟内存中的已调配页或保留页。用户可利用 dwFree Type 参数将已调配页修改成保留页属性。VirtualProtect()是 VirtualAlloc()的一个辅助函数,利用它可以改变虚拟内存的保护规范。5.2 实践目的 1)通过实践了解 Windows xp 内存的使用,学习如何在应用程序中管理内存、体会 Windows 应用程序内存的简单性和自我防护能力。2)学习检查虚拟内存空间或对其进行操作 3)了解 Windows xp 内存结构和虚拟内存的管理,进而了解进程堆和 Windows 为使用内存而提供的一些扩展功能。5.3 工具/准备工作 在开始本实践之前,请回顾教科书的相关内容。您需要做以下准备:1)一台运行 Windows xp Professional 操作系统的计算机。2)计算机中需安装 Visual C+6.0 专业版或企业版。5.4 实践内容与步骤 1.虚拟内存的检测 使用 VirtualQueryEX()函数来检查虚拟内存空间。步骤 1:登录进入 Windows xp Professional。步骤 2:在“开始”菜单中单击“程序”、“Microsoft Visual Studio 6.0”“Microsoft Visual C+6.0”,进 入 Visual C+窗口。步骤 3:在工具栏单击“新建”按钮,编写代码保存为 5-1.cpp。功能:检测进程的虚拟地址空间 参考头文件与函数:windows.h、iostream、shlwapi.h、iomanip、WalkVM()、ZeroMemory()、GetSystemInfo(&si)、StrFormatByteSize()、VirtualQueryEx()API 步骤 4:单击“Build”菜单中的“Compile 5-1.cpp”命令,单击“是”按钮确认,系统对 5-1.cpp 进行编译。步骤 5:编译完成后,单击“Build”菜单中的“Build 5-1.exe”命令,建立 5-1.exe 可执行文件。操作能否正常进行,如果不行,原因是什么?步骤 6:在工具栏单击“Execute program”按钮,执行 5-1.exe 程序。运行结果(如果运行不成功,原因是什么?):按 committed、reserved、free 等三种虚拟地址空间分别记录实践数据,其中“描述”是指对该组数据的简单描述,例如:对下列一组数据:00010000-0001xpCommitted,READWRITE,Private 可描述为:具有 READWRITE 权限的已调配私有内存区。将系统当前的自由区(free)虚拟地址空间填入表 5-3 中。表 5-3 实践记录 地址 大小 虚拟地址空 间 访问权限 描述 free free free free free free free free free free free free free free free free free free free free free free free free free 将系统当前的已调配区(committed)虚拟地址空间填入表 5-4 中 表 5-4 实践记录 地址 大小 虚拟地址空间 访问权限 描述 committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed committed 将系统当前的保留区(reserved)虚拟地址空间填入表 5-8 中 表 5-5 实践记录 地址 大小 虚拟地址空 间 访问权限 描述 reserved reserved 地址 大小 虚拟地址空 间 访问权限 描述 reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved reserved 2.虚拟内存操作 如何分配一个大容量空间,将物理存储委托给其中的很小一部分(千分之一)并加以使用。步骤 1:在工具栏单击“新建”按钮,编写代码并保存为 5-2.cpp。功能:分配和使用大块内存 参考头文件与函数:windows.h、iostream、FillZero()、malloc()、FillZero()、free()、VirtualAlloc()、VirtualFree()、;步骤 2:单击“Build”菜单中的“Compile5-2.cpp”命令,单击“是”按钮确认,系统对 5-2.cpp 进行编译。步骤 5:编译完成后,单击“Build”菜单中的“Build 5-2.exe”命令,建立 5-2.exe 可执行文件。操作能否正常进行,如果不行,原因是什么?步骤 6:在工具栏单击“Execute program”按钮,执行 5-2.exe 程序。运行结果(如果运行不成功,原因是什么?):5.5 撰写实验报告

    注意事项

    本文(《存储管理》实验指导书(模板).pdf)为本站会员(wj151****6093)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开