分页存储管理
「分页存储管理」是一种存储管理技术,把主存划分为相同大小的存储块,称为页架,并按其在内存中的地址顺序从 0 开始对其编号,记为页架号或块号。 不同系统,页架的大小不相同,但对一个特定的计算机系统来说,其大小固定不变。
然后对于用户逻辑地址空间,将用户程序的逻辑地址空间划分成若干个与页架大小相等的部分,每个部分称为页,同样,按逻辑地址顺序从 0 开始对页进行编号,记为页号。
与固定分区存储管理有些类似,都将主存划分为一个个块,但二者有本质区别。固定分区管理的每个块对应每个作业,一个作业只能进入一个块。而分页存储管理将物理地址和逻辑地址都切分成了页,以页为基本的管理单元。当进程需要内存时,操作系统可以将进程的页动态地映射到任何空闲的页框。内存分配是基于页的,可以根据需求灵活调整。
逻辑地址表示
其中 为页号, 为页内偏移地址。例如逻辑地址 2500,页大小 1024,则 ,,逻辑地址可表示为 。
主存分配原则
- 主存以页架为单位进行分配
- 分配的页架可以连续,也可以不连续
- 可以将作业的任意一页放入主存的任意一个页架中
- 作业所有页一次性全部装入主存,若主存空间不够,则作业等待
页面大小
页面大小由机器的地址结构所决定。地址场分两部分:页号和页内偏移;地址场的长度决定最大逻辑地址空间 。
- 页面较小,可使页内碎片小,有利于提高主存利用率,但会使页面数量增多,导致页表过长,占用过多主存。
- 页面较大,可减少页表长度,但又会使页内碎片增加。
- 页面大小的选择应结合计算机指令运算的效率,通常页大小取 2 的幂。
可知其地址场长度为32位,逻辑地址空间为:4G。页大小为4K(212),页表长为1M(220)
地址转换
在分页存储管理中,「地址转换」需要从逻辑地址中求出页号和页偏移; 以页号为索引查找页表,得到相应的块号 ;然后将块号转换为块的物理内存地址,并与页偏移相加获得相应的物理地址。
比较
不同点
- 页是信息的物理单位,分页是为了实现离散分配方式,以减少内存的碎片,提高内存利用率。或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。
- 段是信息的逻辑单位,它含有一组其意义相对完整的信息,分段的目的是为了能更好地满足用户的需要。
- 页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分是由硬件实现的,因而,一个系统只能有一种大小的页面。
- 段的长度不固定,取决于用户编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
- 分页的逻辑地址空间是一维的,即单一的线性地址空间,程序员只需利用一个地址符。即可表示一个地址。
- 分段的逻辑地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
相同点
- 采用离散分配方式;
- 通过地址映射机构实现地址变换。
特点
- 主存利用率高,不存在页外碎片,极少页内碎片,存在于每个进程最后页内。
- 主存分配和释放快。
- 分区管理简单。
例题
一个进程的 PMT 如图,每页1024字节,求出逻辑地址为 2865 的物理地址。