一、概念
页式地址变换指:通过页表,将逻辑地址转换为物理地址
页表:是记录程序虚页与其在主存中块得到对应关系的数据结构。包含页号,页面对应的块号
1.逻辑地址结构
分为:页号 , 页内位移量(页内地址)
记页号为p, p=逻辑地址/页面大小
记页内位移量为d, d=逻辑地址 - p*页面大小
2.物理地址结构
分为:块号 , 块内位移量(块内地址)
分别记为 f , d
3.虚地址结构
页式系统的地址映射必要的数据结构是页表,另外还与计算机所采用的地址结构有关。
而地址结构与选择的页面尺寸有关。
例如:当CPU虚地址长度为32位,页面大小位4KB时,在分页系统中虚地址结构如图所示:
这个地址中的高20位(第12~31位)表示该地址所在的页号,而低12位(第0~11位)表示该地址在这页内的相对位移。将这种地址结构称为分页机构。
二、页内地址转换
例1.已知某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0,1,2,3页分别被分配到主存的5,10,4,7块中。请将十六进制的逻辑地址0A5CH转换成物理地址。
解:
①首先,将十六进制逻辑地址:LA = 0A5CH转换成二进制:000101001011100
再除以 2^10 (即除以页面大小1K:1024) 得:页号为:2 页内地址为:1001011100
②对应页表,页号2的块号为4 得物理地址PA=块号*页面大小+页内地址=4*(2^10) + 1001011100
得PA = 1001001011100 转换为十六进制为:125CH
例2.已知某分页系统,主存容量为64K,页面大小为4K,对一个4页大的作业,其0,1,2,3页分别被分配到主存的5,10,4,7块中。请将十六进制的逻辑地址0A5CH转换成物理地址。
解:此题与上一题唯一不同的是页面大小为4K
同理:将十六进制逻辑地址0A5CH转换成二进制000101001011100
LA = 000101001011100 / (2^12) = 0000 101001011100 (此处除以2^12次方,即4KB
得页号为0, 对应块号为5
PA = 5*(2^12) + 101001011100 = 101 101001011100 转换为十六进制为:5A5CH