分页存储管理

「分页存储管理」是一种存储管理技术,把主存划分为相同大小的存储块,称为页架,并按其在内存中的地址顺序从 0 开始对其编号,记为页架号或块号。 不同系统,页架的大小不相同,但对一个特定的计算机系统来说,其大小固定不变。

然后对于用户逻辑地址空间,将用户程序的逻辑地址空间划分成若干个与页架大小相等的部分,每个部分称为,同样,按逻辑地址顺序从 0 开始对页进行编号,记为页号。

固定分区存储管理有些类似,都将主存划分为一个个块,但二者有本质区别。固定分区管理的每个块对应每个作业,一个作业只能进入一个块。而分页存储管理将物理地址和逻辑地址都切分成了页,以页为基本的管理单元。当进程需要内存时,操作系统可以将进程的页动态地映射到任何空闲的页框。内存分配是基于页的,可以根据需求灵活调整。

逻辑地址表示

在分页系统中,每个逻辑地址用一个数对表示:

其中 为页号, 为页内偏移地址。例如逻辑地址 2500,页大小 1024,则 ,逻辑地址可表示为

主存分配原则

  • 主存以页架为单位进行分配
  • 分配的页架可以连续,也可以不连续
  • 可以将作业的任意一页放入主存的任意一个页架中
  • 作业所有页一次性全部装入主存,若主存空间不够,则作业等待

img-2024-04-28 18-26-01.png

为了管理和维护进程页和页架的映射关系,引入页表

页面大小

页面大小由机器的地址结构所决定。地址场分两部分:页号和页内偏移;地址场的长度决定最大逻辑地址空间 。

  • 页面较小,可使页内碎片小,有利于提高主存利用率,但会使页面数量增多,导致页表过长,占用过多主存。 
  • 页面较大,可减少页表长度,但又会使页内碎片增加。 
  • 页面大小的选择应结合计算机指令运算的效率,通常页大小取 2 的幂。

例如 Intel X86,其逻辑地址结构为:

img-2024-04-28 18-29-05.png

可知其地址场长度为32位,逻辑地址空间为:4G。页大小为4K(212),页表长为1M(220)

地址转换

在分页存储管理中,「地址转换」需要从逻辑地址中求出页号和页偏移; 以页号为索引查找页表,得到相应的块号 ;然后将块号转换为块的物理内存地址,并与页偏移相加获得相应的物理地址。

img-2024-04-28 18-31-41.png

比较

分段存储管理与分页存储管理的比较:

不同点 

  • 是信息的物理单位,分页是为了实现离散分配方式,以减少内存的碎片,提高内存利用率。或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。 
  • 是信息的逻辑单位,它含有一组其意义相对完整的信息,分段的目的是为了能更好地满足用户的需要。 
  • 页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分是由硬件实现的,因而,一个系统只能有一种大小的页面。 
  • 段的长度不固定,取决于用户编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
  • 分页的逻辑地址空间是一维的,即单一的线性地址空间,程序员只需利用一个地址符。即可表示一个地址。 
  • 分段的逻辑地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。 

相同点 

  • 采用离散分配方式; 
  • 通过地址映射机构实现地址变换。

特点

优点 

  • 主存利用率高,不存在页外碎片,极少页内碎片,存在于每个进程最后页内。 
  • 主存分配和释放快。 
  • 分区管理简单。 

缺点: 

  • 要求一次将进程全部页装入主存;
  • 存在页内碎片。

例题

一个进程PMT 如图,每页1024字节,求出逻辑地址为 2865 的物理地址。

0 2
1 4
2 6
3 8

解:

查页表得到对应页架为 6,因此物理地址为

计算过程可以表示为

img-2024-04-28 18-34-18.png