[VMM]虚拟内存(Virtual Memory)

发布时间:2026/7/28 21:52:51
[VMM]虚拟内存(Virtual Memory) 虚拟内存(Virtual Memory) 尽管基址寄存器(base register)和界限寄存器(limit register)可以用来创建地址空间(address space)的抽象,还存在另一个问题:管理软件的膨胀(bloatware)。 当现代软件对运行内存要求越来越高时,交换技术(swapping)就不是一项有吸引力的技术,因为一个传统的SATA硬盘的峰值传输速率最高可以有几百MB/s, 这意味着至少需要几秒才能换出1G的程序,并需要另一个几秒才能将1G的程序换入。 虚拟内存的基本思想是:每个程序有自己的进程空间,这个空间被分割成多个块,每一个块称为一页或页面(page),每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。**当程序引用到一部分在物理内存中的地址空间时,由硬件立即执行必要的映射。当程序引用到一部分不在物理内存中的地址空间时,有操作系统负责将确实的部分装入物理内存并重新执行失败的指令。 虚拟内存可以是的整个地址空间可以用相对较小的单元映射到物理内存,而不是为正文段(text)和数据段(data)分进行重定位。 虚拟内存很适合在多道程序设计系统中使用,许多程序的片段同时保存在内存中,当一个程序等待它的一部分读入内存时,可以把CPU交给另一个进程使用。