操作系统——一级分页存储管理

412 阅读2分钟

操作系统——分页存储管理

1、页内地址 = 页内偏移量
2、物理块号 = 块号
3、一般题目会给定逻辑地址,求物理地址。则将逻辑地址转成2进制\color{red}{转成2进制}后的位数为 逻辑地址位数(由页号和页内地址组成\color{red}{由页号和页内地址组成}),若得知其中一个的位数,相减可得另一个的位数。
4、页的数量 = 页框的数量
5、页表项的大小 = 页的大小 6、一般物理块号在题目中会以页表\color{red}{页表}的方式给出。

页表

页号物理块号
05
110
24
37

公式

物理地址\color{red}{物理地址} = 物理块号(块号) * 页面大小 + 页内地址(页内偏移量)
逻辑地址\color{red}{逻辑地址} 可以分为 页号、页内偏移量\color{red}{页号、页内偏移量}
页表项个数\color{red}{页表项个数} = 2页号的位数2^{页号的位数}
页表大小\color{red}{页表大小} = 页表项的大小 x 页大小
页号(多少位)\color{red}{页号(多少位)}

1、页号 = 逻辑地址 / 页面长度(向下取整)
2、页号 = 页面数量的2的次方数

页内地址(页内偏移量)\color{red}{页内地址(页内偏移量)}

1、页内地址(页内偏移量) = 逻辑地址 % 页面长度
2、页内地址(页内偏移量) = 页面大小的2的次方数

页号页内偏移量
内存提供的信息\color{red}{内存提供的信息}

1、块的数量 = 内存大小/页面大小
2、块号占的位数 = 块的数量的2的次方

题解

页号物理块号
07
14
28
......

某计算机系统的内存按字节编址,逻辑地址和物理地址都是32位。采用分页存储管理方式,页的大小为2KB。已知页表内容如上图所示。

(1)逻辑地址中,页号和页内偏移的位数分别是多少位?

页内偏移的位数\color{red}{页内偏移的位数} = 页大小的2的次方数 = 2112^{11} = 11

页号的位数\color{red}{页号的位数} = 逻辑地址位数 - 页内偏移的位数 = 32 - 11 = 21

(2)如果页表项大小为4字节,则一个进程的页表最大为多少字节?

页表大小\color{red}{页表大小} = 页表项 * 页大小 = 4 * 2KB = 8KB

(3)设某逻辑地址为0x00000A7A,其页内偏移量是多少?该逻辑地址所对应的物理地址是多少? (历年真题•2022年4月)

0x00000A7A 的 二进制为 101001111010

页内偏移量\color{red}{页内偏移量}是11位,则是 01001111010 = 634

页号\color{red}{页号} 为 1,则块号为 4

物理地址\color{red}{物理地址} = 物理块号(块号) * 页面大小 + 页内地址(页内偏移量) = 4 * 2048 + 634 = 8826 = 0x227a