虚拟内存基础:从绝对地址到分页系统

需积分: 10 0 下载量 138 浏览量 更新于2024-07-28 收藏 254KB PDF 举报
本篇讲座主要探讨了虚拟内存的基础概念及其发展历程。在50年代,计算机采用的是绝对地址,程序在运行时可以自由访问整个内存空间,但由于程序位置的依赖性,程序员需要编写位置无关的子程序,这促使了装载器和连接器的出现,用于静态地对程序进行重新定位和连接,实现了动态地址转换。 60年代,分页式内存系统如TLBS(转换后备缓冲器)引入,例如Atlas的按需分页,提升了内存管理和效率。这种系统将机器语言地址和虚拟地址区分开,通过段寄存器将机器码地址转化为虚拟地址,再由操作系统将虚拟地址映射到物理存储器位置。为了支持多道程序设计,程序需要基址寄存器和边界寄存器来保护不同程序之间的隔离,实现地址变换并确保程序和数据区域的分离。 然而,这种方法存在局限性,如内存分段可能导致存储空间碎片,即“内存打嗝”,为了应对这个问题,出现了分页式内存系统,它将地址分为页号和偏移量,通过页表管理每个页面的物理地址,从而实现内存空间的非连续分配。每个用户都有自己的私有地址空间,且操作系统会确保页表不会重叠,但这也带来了页表空间需求大的问题,通常不在寄存器中存储,而是存储在主存中,增加了内存访问的复杂性。 虚拟内存的发展旨在提高内存利用率、支持多任务并发和保护程序安全,但同时也伴随着空间管理和性能优化的挑战。理解这些基础知识对于深入研究操作系统、编译器和硬件设计至关重要。