虚拟内存

使系统拥有一个连续完整的地址空间的内存管理技术
虚拟内存(Virtual Memory),[1]计算机系统内存管理的一种技术,它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,当计算机缺少运行某些程序所需的物理内存时,操作系统会使用硬盘上的虚拟内存进行替代。[6]
在虚拟内存概念提出前,计算机内存管理依靠随机存取存储器(RAM)和辅助存储,面临程序规模增长与内存成本高昂的挑战。[7]虽然关于虚拟内存概念的首次提出存在一些争议,但普遍认为是由德国物理学家弗里茨·鲁道夫·冈施(Fritz-Rudolf Güntsch)于1956年率先提出,[8]英国曼彻斯特大学于1959年开发的Atlas计算机实现了分页技术,成为早期采用虚拟内存技术的系统之一,[9][7]而伯勒公司(Burroughs Corp.)随后于1961年推出了首款商用的虚拟内存计算机系统。[8]1982年,英特尔在80286处理器中引入虚拟内存技术,并在1985年的80386处理器中提供分页支持,推动了个人电脑技术的快速发展[8][7]
虚拟内存器的调度方式包括分页式、段式和段页式。[10]影响虚拟内存的因素包括设置虚拟内存的大小、存储位置、内存管理单元等,[11][12]涉及到地址变换、替换算法等重要技术,[4][5]其具有扩大地址空间、对特定的内存地址提供写保护和公平分配内存等优点,[13]但同时也存在浪费内存、增加指令的执行时间等局限性。[13]此外,虚拟内存广泛应用在多任务操作系统、大型应用程序等场景中。[2][3]

发展历程

背景