操作系统——分页存储管理
注
1、页内地址 = 页内偏移量
2、物理块号 = 块号
3、一般题目会给定逻辑地址,求物理地址。则将逻辑地址后的位数为 逻辑地址位数(),若得知其中一个的位数,相减可得另一个的位数。
4、页的数量 = 页框的数量
5、页表项的大小 = 页的大小
6、一般物理块号在题目中会以的方式给出。
页表
| 页号 | 物理块号 |
|---|---|
| 0 | 5 |
| 1 | 10 |
| 2 | 4 |
| 3 | 7 |
公式
= 物理块号(块号) * 页面大小 + 页内地址(页内偏移量)
可以分为
=
= 页表项的大小 x 页大小
1、页号 = 逻辑地址 / 页面长度(向下取整)
2、页号 = 页面数量的2的次方数
1、页内地址(页内偏移量) = 逻辑地址 % 页面长度
2、页内地址(页内偏移量) = 页面大小的2的次方数
| 页号 | 页内偏移量 |
|---|---|
1、块的数量 = 内存大小/页面大小
2、块号占的位数 = 块的数量的2的次方
题解
| 页号 | 物理块号 |
|---|---|
| 0 | 7 |
| 1 | 4 |
| 2 | 8 |
| ... | ... |
某计算机系统的内存按字节编址,逻辑地址和物理地址都是32位。采用分页存储管理方式,页的大小为2KB。已知页表内容如上图所示。
(1)逻辑地址中,页号和页内偏移的位数分别是多少位?
= 页大小的2的次方数 = = 11
= 逻辑地址位数 - 页内偏移的位数 = 32 - 11 = 21
(2)如果页表项大小为4字节,则一个进程的页表最大为多少字节?
= 页表项 * 页大小 = 4 * 2KB = 8KB
(3)设某逻辑地址为0x00000A7A,其页内偏移量是多少?该逻辑地址所对应的物理地址是多少? (历年真题•2022年4月)
0x00000A7A 的 二进制为 101001111010
是11位,则是 01001111010 = 634
为 1,则块号为 4
= 物理块号(块号) * 页面大小 + 页内地址(页内偏移量) = 4 * 2048 + 634 = 8826 = 0x227a