用分区方式管理的存储器,每道程序总是要求占用主存的一个或几个连续存储区域,作业或进程的大小仍受到分区大小或内存可用空间的限制,因此,有时为了接纳一个新的作业而往往要移动已在主存的信息。这不仅不方便,而且开销不小。采用分页存储器既可免去移动信息的工作,又可尽量减少主存的碎片。
分页式存储管理的基本原理如下:
- 页框:物理地址分成大小相等的许多区,每个区称为一块(又称页框 page frame);
- 页面:逻辑地址分成大小相等的区, 区的大小与块的大小相等,每个区称一个页面(page)。
- 逻辑地址形式:与此对应,分页存储器的逻辑地址由两部分组成:页号和单元号。
用户进程在内存空间中的每个页框内的地址是连续的,但页框和页框之间的地址可以不连续 - 页表和地址转换:在进行存储分配时,总是以块(页框)为单位进行分配,一个作业的信息有多少页,那么在把它装入主存时就给它分配多少块。但是,分配给作业的主存块是可以不连续的,即作业的信息可按页分散存放在主存的空闲块中,这就避免了为得到连续存储空间而进行的移动。
动态重定位技术
为了确保页式虚拟地址能正确地变换成页框物理地址,我们使用动态重定位技术。
程序的指令执行时作地址变换,由于程序段以页为单位,所以,我们给每个页设立一个重定位寄存器,这些重定位寄存器的集合便称页表(page table)
页表
- 页表中的每一栏指明了程序中的一个页面和分得的页框(块)的对应关系,每当选中作业运行时,应进行存储分配,为进入主存的每个用户作业建立一张页表,指出逻辑地址中页号与主存中块号的对应关系,页表