OS 基础教程

进程管理

同步

死锁

内存管理

文件管理

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/os-virtual-memory.html

虚拟内存


虚拟内存是一种存储方案,为用户提供了一个拥有非常大的主内存的幻觉。 这是通过将辅助存储器的一部分作为主存储器来完成的。

在这种方案中,用户可以加载比可用主存更大的进程,因为存在内存可用于加载进程的错觉。

操作系统不是在主内存中加载一个大进程,而是在主内存中加载多个进程的不同部分。

通过这样做,多程序的程度将会增加,因此CPU利用率也会增加。

虚拟内存如何工作?

在现代语言中,虚拟内存近来变得非常普遍。 在这种方案中,无论何时需要将一些页面加载到主存储器中用于执行,并且存储器对于那些许多页面不可用,那么在这种情况下,而不是停止页面进入主存储器,OS搜索 最近最少使用的RAM区域或未被引用的RAM区域,并将其复制到辅助存储器中以为主存储器中的新页面留出空间。

由于所有这些过程都是自动发生的,因此它使电脑感觉像是拥有无限的RAM。

按需分页

按需分页(Demand Paging)是虚拟内存管理的一种流行方法。 在需求分页中,最少使用的进程页面存储在辅助存储器中。

当需求发生或发生页面错误时,页面会被复制到主存储器。 有各种页面替换算法用于确定将被替换的页面。 稍后我们将详细讨论它们。

虚拟内存管理系统的快照

假设2个进程,P1和P2,每个包含4个页面。 每个页面大小是1 KB。 主存储器包含8个每个1 KB的帧。 操作系统驻留在前两个分区中。 在第三个分区中,P1的第1页被存储,而其他帧也被显示为在主存储器中填充了不同的进程页面。

两个页面的页表都是1 KB大小,因此每个页面可以放在一个框架中。 这两个进程的页表包含图像中也显示的各种信息。

CPU包含一个寄存器,其中包含页表的基址,在P1的情况下为5,在P2的情况下为7。 当涉及访问实际的相应条目时,该页表基地址将被添加到逻辑地址的页码。

虚拟内存的优点

  • 多程序的程度将会增加。
  • 用户可以用较少的真实RAM运行大型应用程序。
  • 不需要购买更多的内存RAM。

虚拟内存的缺点

  • 由于交换需要时间,系统变慢。
  • 切换应用程序需要更多时间。
  • 用户将有较小的硬盘空间供其使用。