前言
这部分知识在软考或者考研408都比较常见
1. 定义
分页存储的物理地址转逻辑地址:
页式存储管理的逻辑地址分为两部分:页号和页内地址
逻辑地址 = 页号 + 页内地址
物理地址 = 帧号 + 页内地址
2. 例题
常见的例题有十进制和十六进制
2.1 十进制
题目:
分页系统中,页面大小为1K,进程P有4个页面,页号分别为0~3。如下表所示:
页号 | 页框号/帧 |
---|---|
0 | 3 |
1 | 4 |
2 | 6 |
3 | 8 |
进程P要访问十进制的逻辑地址为2300,求对应的物理地址
答案:
-
逻辑地址的页号:2300/1024=2 (整除)
-
根据逻辑地址的页号查出物理地址的页框号/帧号: 逻辑地址的第2页对应物理地址的第6页。
-
页内偏移量 : 2300 % 1024 =252 (取余)
-
求物理地址 = 6*1024 + 252 = 6396
2.2 十六进制
以19年软考高级真题例题讲解:
进程P有8个页面,页号分别为0~7,页面大小为4K,假设系统给进程P分配了4个存储块,进程P的页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不在内存。
- 若进程P要访问的逻辑地址为十六进制5148H,则该地址经过变换后,其物理地址应为十六进制XXXX
- 如果进程P要 访问的页面6不在内存,那么应该淘汰页号为XXXX的页面
答案:
第一题:
根据题意,页面大小为4K,逻辑地址为十六进制5148H页号为5,页内地址为148H,查页表后可知页帧号(物理块号)为3,该地址经过变换后,其物理地址应为页帧号3拼上页内地址148H,即十六进制3148H。
之所以第一位为5,即可以通过查表来转换物理地址,最后拼上页内地址
主要的逻辑如下:
- 5148H转换为二进制为0101 0001 0100 1000
- 由于页面大小为4K字节,也就是12次方,对应上方二进制的后12位即为页内地址
- 通过查表可知,前面4个二进制代表5,对应表格为3。 最后拼接后面的地址 即3 148
第二题:
据题意,页面变换表中状态位等于1和0分别表示页面在内存或不在内存,所以1、2、5和7号页面在内存。当访问的页面4不在内存时,系统应该首先淘汰未被访问的页面,因为根据程序的局部性原理,最近未被访问的页面下次被访问的概率更小;如果页面最近都被访问过,应该先淘汰未修改过的页面,因为未修改过的页面内存与辅存一致, 故淘汰时无须写回辅存,使系统页面置换代价更小。
综上分析,1、5和7号页面都是最近被访问过的,但2号页面最近未被访问过,故应该淘汰2号页面。