一、内存的非连续分配管理方式
(一)基本分页存储管理方式
1、分页原理
在分页存储管理中,用户的作业的地址空间被划分为若干个大小相等的区域,成为页或页面。相应地,将内存的存储空间也分成与页面大小相等的区域,成为块或物理块。在为作业分配存储空间时,总是以块为单位分配,可以将作业中的任意一页放到内存中的任意一块中。
在调度作业时,要求将它的所有页一次调入内存中,若内存中没有足够的块,则作业等待。这种存储管理方式称为简单分页或纯分页。同时页面的大小要选择适中(通常为2的整数幂),以方便地址变换,一般为512B-4KB。
分页系统中的逻辑地址包含两部分内容:前一部分为页号P,后一部分为页内位移W(也称页内偏移量)。这两部分构成的地址长度为32位。其中0-11位是页内位移地址,即每页的大小为212B=4KB,12-31位是页号,即一个进程运行的最多页数为220=1M页。假设逻辑地址A,页面大小为L,则页号P=(int)(A/L)。页内位移W=A%L。
2、页表
为了将逻辑地址上连续的页号映射到物理内存中后成为离散分布的多个物理块,需要将每个页面和每个物理块一一对应,这种映射关系就体现在页表上。页表中每一个页表项都由页号和物理块号组成,根据页表项就可以找到每个页号所对应的物理内存块号。页表通常存放在内存中。
在基础分页系统中,页表长度M是由页号的位数决定的。而页表的大小可以理解为一个矩形的面积,这个矩形的长度就是页表的长度M,宽度是每个页表项的大小,即页号的位数。从页表的大小的计算公式可知,页表大小和页表长度成正比,而页表长度又随着页号位数的增长呈指数式增长。
3、基本地址变换机构
设页面大小为L,则从逻辑地址A得到物理地址E去访问内存的步骤为:
(1)计算页号P=(int)(A/L);页内位移