分页(Paging)是一种内存管理方案,是将进程以页的形式从辅助存储器检索到主存储器的过程,无需连续分配物理内存,将每个过程分成页面。[1]分页的主要思路是把虚拟(逻辑)地址空间和主存实际(物理)地址空间,都划分为大小一致、位置固定的分区,每个分区被称为一个“页”,并赋予唯一的编号,这样所有地址都可以用页号拼接页内地址的形式来表示。[2] 计算机操作系统中,连续分配的算法妨碍了存储管理方案的设计,引起大量的内存碎片,因此需要考虑非连续分配的方式,而分页管理方式就是其中的一种。[3]1959年,Atlas系统[4]被开发出来,它使用分页将虚拟地址映射到主内存上,并于1962年投入使用。1969年,IBM研究人员证明了虚拟内存系统相较于早期手动系统的优势。到了1970年代,大型机和小型计算机普遍采用了虚拟内存技术。英特尔在1982年的80286处理器中引入了虚拟内存,并在1985年的80386处理器中引入了分页支持。[5] 分页存储管理把内存空间划分成大小相等、位置固定的若干个小分区,每个小分区称为一个存储块,并依次编号,每个存储块的大小由不同的系统决定,一般为2的n次幂。[6]分页提高了内存管理的效率,进而提高系统性能和响应能力。[7]然而分页存储也存在一些问题,如可能导致程序的模块化程度降低,管理页表需要额外的存储空间等。[8] 发展历程
操作系统采用连 续分配的存储管理方式,这种方式会产生许多碎片,而碎片的空间很小,无法容纳作业,通过拼凑将小碎片拼接成可用的大块空间,又会增加系统开销。如果允许将作业直接分散地装入到许多不相邻、不连续的分区中,则无须再进行拼凑,基于这一思想产生了离散分配方式,分页式存储管理就是其中的一种。[3]