Windows 内存管理方式

WINDOWS内存管理方式综述

WINDOWS内存管理方式主要分为:段式管理、页式管理、段页式管理。

页式管理:页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页 (page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚 拟地址与内存地址建立一一对应页表, 并用相应的硬件地址变换机构, 来解决离散地址变换 问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。 其优点是没 有外碎片,每个内碎片不超过页大小。一个程序不必连续存放。便于改变程序占用空间的大 小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用 完成而不是操作系统自动完成)。 缺点:程序全部装入内存,要求有相应的硬件支持。例 如地址变换机构, 缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。 这增加了机 器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生 抖动现象。 虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用 果页面较大,则这一部分的损失仍然较大。

段式管理的基本思想就是把程序按内容或过程 (函数) 关系分成段, 每段有自己的名字。 一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。 段式管理程序以段为单位分配内存, 然后通过地址影射机构把段式虚拟地址转换为实际内存 物理地址。 程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。 其优点是:可以分别编写和编译。 可以针对不同类型的段采取不同的保护。 可以按段为单 位来进行共享,包括通过动态链接进行代码共享。

段页式管理: 为了实现段页式管理, 系统必须为每个作业或进程建立一张段表以管理内 存分配与释放、 缺段处理、 存储保护相地址变换等。 另外, 由于一个段又被划分成了若干页, 每个段又必须建立一张页表以把段中的虚页变换成内存中的实际页面。 显然, 与页式管理时 相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。另外,由于在段页 式管理中,页表不再是属于进程而是属于某个段,因此,段表中应有专项指出该段所对应页 表的页表始址和页表长度。 因为段页式管理是段式管理的页式管理方案结合而成的,所以 具有它们二者的优点。但反过来说,由于管理软件的增加,复杂性和开销也就随之增加了。 另外,需要的硬件以及占用的内存也有所增加。更重要的是,如果不采用联想寄存器的方式 提高CPU的访内速度,将会使得执行速度大大下降。

原文地址:https://www.cnblogs.com/miralce/p/2915683.html