windows内存管理资料整理分享修正补充.docVIP

windows内存管理资料整理分享修正补充.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows内存管理机制方面的资料整理 以下关于windows的内存管理方面的资料整理,中间有些部分是根据我个人理解写上去的,有些知识点是资料中摘录的。对于windows内存管理机制方面比较感兴趣的朋友可以看看。当然自己写的那部分内容可能存在偏差,希望不要误导大家才好。一些自己写的东西,我基本上都用红色标示一下,大家看的时候注意,仅供参考,不对文字的准确性做保证。 还有需要说明的一点就是,个人觉得对于这些底层的东西的了解可能不一定说在你的日常开发中会有非常大的帮助和作用,但是明白底层的东西我觉得至少会让你开阔视野,明白问题的本质,有的时候在遇到棘手的问题上也许也会有帮助,会让你在思考问题的角度和层面上更加的深入。 Intel i386 CPU 系列提供的保护模式下的虚拟内存管理机制,请记住,这只是表示特定的 CPU 架构,而不是特定的处理器版本。保护模式按照我个人的理解就是操作系统之上运行在ring3权级的应用程序是无法真正控制真正的内存,这一切都是由操作系统进行代劳,应用程序所访问到的自认为是真实内存的地址不过是操作系统的一种映射关系。这样伪造了每个应用程序独立4GB的内存空间就成为一种可能,而且由操作系统进行管理和整理内存碎片,也在一定程度上保证了操作系统自身的稳定和安全,避免应用程序的误操作导致系统崩溃。这个是我个人从内存角度进行感受保护模式和实模式的一种区别的自我感觉,当然对于是否正确就不知道了。 当然32位操作系统,由于是2进制的编码方式,自然最多的组合就是2的32次方,也就是刚刚好4GB的内存空间大小的寻址范围。 补充说明:至于为什么是2的32次方,因为更加确切的说是因为cpu的寄存器以及地址总线所限制的,因为地址总线决定了cpu的视野,也就是cpu所能够访问到的线性内存地址范围。寄存器是32位的,如EAX/EBX/ECX/EDX等这些通用寄存器。相比8086的那个时候的16位寄存器的寻址方式:段寄存器*16 + 偏移地址,32寄存器位就更加方便了。为什么需要*16,也就是二进制的向左移动4位是因为当时的地址总线可以达到20,也就是说根据地址总线cpu可以寻址2的20次方,而当时的寄存器只有16位,成为一种瓶颈。所以才使用上诉方式不浪费20根地址总线的寻址范围。还有需要说到的一点就是目前的cpu基本上都是已经发展到支持64位寻址了。当然想要真正的做到64位的寻址,必须符合下面三个条件,缺一不可,第一cpu本身的支持、操作系统的支持即64位操作系统、应用软件(64位应用软件)的支持。三种完全符合才是真正意义上的64位的工作模式。具体关于寻址方面的东西,大家可以参考相关的汇编方面的书籍,应该都会有介绍,我也是结合自己理解,大概的进行描述一下。 虽然说32位操作系统寻址可以到4GB,但是并不是说系统给予应用程序可用的内存空间就是4GB了,下面是摘自网络上一篇资料的说明。由 32 位的 Intel CPU 提供的 4GB 虚拟内存空间被分割为相等的两部分。低于 0的内存地址由用户模式下的模块使用,这包括 Win32 子系统,剩余的 2GB 保留给了系统内核。 Windows 2000 Advanced Server 还支持通常称为 4GT RAM Tuning 的另一种内存模型,该模型随 Windows NT 4.0 Server 的企业版引入。该模型可提供 3GB 的用户地址空间,另 1GB 保留给内核,通过在 boot.ini 中添加 /3GB 选项来启用该模型。虽然这段话不是非常明白,但是从中可以肯定一点,就是操作系统给予应用程序的内存大小就在2GB到3GB左右。因为它自身也是程序,自然少不了给自己一定的内存空间。 大内存的管理是非常不方便的,所以操作系统引入了,内存分段和请求式分页的概念。80386 的另一个新特性是在硬件上支持分页,确切的来说是:请求式分页的虚拟内存。按照我个人的理解,应该就是类似操作系统当起了搬运工人,将运行中的程序的某些暂时用不到的资源或者数据移到存储设备如硬盘等,给其他程序的运行营造空间。等到这个应用程序那些数据需要用到的时候,又重新加载入内存。所以个人感觉所谓的虚拟内存,其实就是夹杂着硬盘这类cpu无法直接访问的存储设备进行凑数的。 下面是摘抄的关于操作系统的分页大小的问题: 80386 分页的模式是将内存划分为 4KB 或 4MB 大小的页。操作系统的设计者可以在二者之间自由的选择,也可混合使用这两个大小的页面。稍后,我会介绍 Windows 2000 采用的混合大小方案:由操作系统使用 4MB 的页面,而 4KB 页面由剩余的代码和数据使用。这些页面由分层结构的页表树管理,该页表树记录当前位于物理内存中的页,同时还记录了每个页是否实际的位于物理内存中。如果指定页已

文档评论(0)

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

建筑从业资格证持证人

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

领域认证该用户于2023年05月12日上传了建筑从业资格证

1亿VIP精品文档

相关文档