操作系统 什么是虚拟内存
虚拟内存是一种存储方案,为用户提供了一个拥有非常大主存储器的幻象。这是通过将一部分辅助存储器作为主存储器来实现的。
在这个方案中,用户可以加载比可用主存储器更大的进程,并具有内存可用于加载进程的幻象。
操作系统不是将一个大进程加载到主存储器中,而是将多个进程的不同部分加载到主存储器中。
通过这样做,多道程序设计的程度将增加,因此CPU利用率也将增加。
虚拟内存是如何工作的
在现代世界中,虚拟内存已经变得非常普遍。在这个方案中,每当一些页面需要加载到主存储器中进行执行,而且该内存不足以容纳那么多页面时,操作系统会搜索最近使用的或未引用的RAM区域,并将其复制到辅助存储器中,以在主存储器中为新页面腾出空间。
由于所有这些过程都是自动进行的,因此使计算机感觉像拥有无限的RAM。
需求分页
需求分页是一种常用的虚拟内存管理方法。在需求分页中,最少使用的进程页面被存储在辅助存储器中。
当需要页面或发生缺页中断时,页面将被复制到主存储器中。有各种页替换算法用于确定将被替换的页面。我们将在后面详细讨论每一个。
虚拟内存管理系统的快照
假设我们有2个进程P1和P2,每个进程包含4个页面。每个页面的大小为1 KB。主存储器包含8个1 KB的帧。操作系统位于前两个分区。在第三个分区,存储了P1的第1个页面,其他帧也显示为包含主存储器中进程的不同页面的填充。
两个页面的页表都有1 KB的大小,因此它们可以适配到各自的一个帧中。两个进程的页表包含各种信息,这也在图片中显示出来。
CPU包含一个寄存器,其中包含页表的基址,在P1的情况下为5,在P2的情况下为7。当访问实际对应条目时,此页表基址将与逻辑地址的页号相加。
虚拟内存的优点
- 多道程序设计的程度将会增加。
- 用户可以用较少的真实内存运行大型应用程序。
- 无需购买更多的内存条。
虚拟内存的缺点
- 系统变慢,因为交换需要时间。
- 在应用程序之间切换需要更多时间。
- 用户会拥有较少的硬盘空间供其使用。