Windows如何自主设计虚拟内存

1.概念

虚拟内存是计算机系统内存管理的一种技术。 它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。
Virtual memory – separation of user logical memory from physical memory.
放张图有利于理解:
Windows如何自主设计虚拟内存

2.工作原理和性能

Demand Paging按需调页

当调用的程序段没有在内存中时,引发page fault陷入内核。
执行步骤如下:
Windows如何自主设计虚拟内存

  1. 检查进程的内部页表,以确定该引用是合法还是非法的地址访问。
  2. 如果非法,则终止进程。如果引用合法但是尚未调入页面,那么现在应该调入。
  3. 找到一个空闲帧
  4. 调度一个磁盘操作,以便将所需要的页调入刚分配的帧
  5. 当磁盘读操作完成后,写该进程的内部表和页表,以表示该页已在内存中
  6. 重新开始因陷阱(page fault)中断的指令。进程现在能访问所需的页,就好像她似乎总在内存中。

按需调页的性能

Page Fault Rate页错误率
EAT有效访问时间

设Page Fault Rate 0 <= p <= 1.0

Effective Access Time (EAT)
EAT = (1 – p) x memory access
+ p (page fault overhead
+ swap page out
+ swap page in
+ restart overhead)
=(1-p)x(内存访问时间)+px(页错误时间)
相比于内存访问时间,页错误时间会大好几个数量级,因为涉及到i/o操作。所以页错误率必须十分接进于0,否则该技术没有意义。

3.windows中的虚拟内存

Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。 一般而言,计算机的RAM容量越大,程序运行得越快。若计算机的速率由于RAM可用空间匮乏而减缓,则可尝试通过增加虚拟内存来进行补偿。
虚拟内存是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。

自定义Windows下的虚拟内存的大小

1.右击计算机,单击属性

Windows如何自主设计虚拟内存

2.单击高级系统设置

Windows如何自主设计虚拟内存

3.单击高级,单击设置

Windows如何自主设计虚拟内存

4.单击高级,单击更改

Windows如何自主设计虚拟内存

5.按照自己的意愿设置

1)取消自动管理2)选择自定义大小
Windows如何自主设计虚拟内存