VR虚拟现实实验W虚拟内存.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VR 虚拟现实实验 W 虚拟内存 实验3Windows 虚拟内存 (一) 、虚拟内存 1 背景知识 32 在 Windows 环境下,32 位 Windows 系统中,2 =4GB 的虚拟地址空间被划分成两个部分: 低端 2GB 提供给进程使用,高端 2GB 提供给系统使用。这意味着用户的应用程序代码,包括 DLL 以及进程使用的各种数据等,都装在用户进程地址空间内(低端 2GB) 。用户过程的虚拟 地址空间也被分成三部分: 1)虚拟内存的已调配区(committed) :具有备用的物理内存,根据该区域设定的访问权 限,用户可以进行写、读或在其中执行程序等操作。 2)虚拟内存的保留区(reserved) :没有备用的物理内存,但有一定的访问权限o 3)虚拟内存的自由区(free) :不限定其用途,有相应的PAGE_NOACCESS 权限。 与虚拟内存区相关的访问权限告知系统进程可在内存中进行何种类型的操作。例如,用 户不能在只有 PAGE_READONLY 权限的区域上进行写操作或执行程序;也不能在只有 PAGE_EXECUTE 权限的区域里进行读、写操作。而具有 PAGE_NOACCESS 权限的特殊区域,则 意味着不允许进程对其地址进行任何操作。 在进程装入之前,整个虚拟内存的地址空间都被设置为只有 PAGE_NOACCESS 权限的自由 区域。当系统装入进程代码和数据后,才将内存地址的空间标记为已调配区或保留区,并将 诸如 EXECUTE 、READWRITE 和 READONLY 的权限与这些区域相关联。 如表 1 所示,给出了 MEMORY_BASIC_INFORMATION 的结构,此数据描述了进程虚拟内存 空间中一组虚拟内存页面的当前状态,其中State 项表明这些区域是否为自由区、已调配区 或保留区;Protect 项则包含了 Windows 系统为这些区域添加了何种访问保护;Type 项则表 明这些区域是可执行图像、内存映射文件还是简单的私有内存。VirtualQueryEX()API 能让 用户在指定的进程中,对虚拟内存地址的大小和属性进行检测。 Windows 还提供了一整套能使用户精确控制应用程序的虚拟地址空间的虚拟内存 API 。 一些用于虚拟内存操作及检测的 API 如表 2 所示。 表 1MEMORY_BASIC_INFORMATION 结构的成员 成员名称 目的 PVOIDBaseAddress 虚拟内存区域开始处的指针 PVOIDAllocationBase 如果这个特定的区域为子分配区的话,则为虚拟内存外面区 域的指针;否则,此值与 BaseAddress 相同 DWORDAllocationProtect 虚拟内存最初分配区域的保护属性。其可能值包括: PAGE_NOACCESS,PAGE_READONLY,PAGE_READWRITE 和 PAGE_EXECUTE_READ DWORDRegionSize 虚拟内存区域的字节数 DWORDState 区域的当前分配状态。其可能值为MEM_COMMIT,MEM_FREE 和 MEM_RESERVE DW()RDProtect 虚拟内存当前区域的保护属性。可能值与 AllocationProtect 成员的相同 DWORDType 虚拟内存区域中出现的页面类型。可能值为 MEM_IMAGE , MEM_MAPPED 和 MEM_PRIVATE 表 2 虚拟内存的 API APl 名称 描述 VirtualQueryEx() 通过填充MEMORY_BASIC_INFORMATION 结构检测进程内虚拟内存的区 域 VirtuaAlloc() 保留或调配进程的

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档