1、页面的概念
内存划分成多个小单元,每个单元K大小,称(物理)块。作业也按K单位大小划分成片,称为页面。
(1)物理划分块的大小 = 逻辑划分的页的大小
(2)页面大小要适中。
太大,(最后一页)内碎片增大,类似连续分配的问题。
太小的话,页面碎片总空间虽然小,提高了利用率,但每个进程的页面数量较多,页表过长,反而又增加了空间使用。
2、 页表的概念
——为了找到被离散分配到内存中的作业,记录每个作业各页映射到哪个物理块,形成的页面映射表,简称页表。
——每个作业有自己的页表
——页表的作用:
页号到物理块号的地址映射
——要找到作业A
关键是找到页表(PCB)
根据页表找物理块
3、地址的处理
连续方式下,每条指令用基地址+偏移量即可找到其物理存放的地址。
1)分页方式下详细的地址处理会如何呢?
地址映射(地址计算)的过程?
若要执行某作业的一条指令,其相对地址是24B (设10B一页,页表如右表),其物理地址到底是多少呢?
分析其所在的页和偏移得:2号页(页号从0开始) ,偏移4B处是该条指令
2)查页表找页面对应的块(2号页保存在6号物理块)
3)找物理块6,向下偏移4B,找到要执行的指令。取出执行即可。
计算上就是求商(页号)及取余(偏移量)的过程
规律
——作业相对地址在分页下不同位置的数有一定的意义结构:
页号+页内地址(即页内偏移)
——关键的计算是:根据系统页面大小找到不同意义二进制位的分界线。
——从地址中分析出页号后,地址映射只需要把页号改为对应物理块号,偏移不变,即可找到内存中实际位置。