浅析如何把逻辑地址转换为物理地址

摘要:微信搜索【三桥君
本文只讲逻辑地址转换为物理地址的计算方法

一、依据

逻辑地址=页号+页内地址
物理地址=块号+页内地址

【解析】
逻辑地址转换为物理地址其实就是页号转换为块号。

他们之间的页内地址是一样的。

然后,我们要搞清楚页号、块号、页内地址怎么求的,然后通过公式带进去就可以求出逻辑/物理地址。

页内地址的表达方式是2进制的,所以不管给的逻辑地址、物理地址都先转换为2进制。具体页内地址取几位,通过题目给的去求,如“每页为1KB”。

二、例题

1、十六进制

设某用户的编程空间共32个页面,每页为1KB,内存容量为16KB。假定用户程序的页表如下所示。请计算逻辑地址0A5CH所对应的物理地址。(要写出计算过程)
浅析如何把逻辑地址转换为物理地址
【分析】
逻辑地址为0A5CH;
页内地址的位数通过“每页为1KB”转换成2的n次幂去求解,n次幂=位数。
页号的位数通过逻辑地址的位数减去页内地址的位数,即16-页内地址的位数。

【解答】
因为 逻辑地址为0A5CH,
所以 逻辑地址转换为2进制为 0000 1010 0101 1100;
因为 1KB=2^10B,
所以 页内地址的位数=10;
所以 页内地址为10 0101 1100;即页号为0000 10。
因为 页号转换为10进制为2,
所以 对应的块号为4;
所以 块号的2进制为000100。
因此,物理地址= 000100 10 0101 1100,即0001 0010 0101 1100。
转换为16进制为125CH。

【说明】
其实这题逻辑地址转换为物理地址的做法就是:
把逻辑地址的页号部分:0000 1010 0101 1100
转换成对应物理地址的块号:0001 0010 0101 1100
这样就完成了转换。

2、非十六进制

在采用分页存储管理的系统中,某作业J的逻辑地址空间为4页(每页2KB),且已知该作业的页面映像表(即页表)如下:试借助地址变换图求出有效逻辑地址4865所对应的物理地址。(要写出计算过程)

浅析如何把逻辑地址转换为物理地址
【分析】
页号P=逻辑地址/页面大小字节=取整数
页内地址W=逻辑地址%页面大小字节=取余数

【解答】
页号P=4865/2K=4865/2048(转为10进制)=2,
页内地址W=4865 % 2048=769;
则通过查找页表,可知第2页放于第6块中,
因此逻辑地址4865所对应的物理地址为:
6*2048+769=13057


文章整理不易,有帮助请点赞关注支持,谢谢!微信搜索【三桥君 】,回复【关注】有我准备的一份资源大礼包,后续持续更新。

上一篇:Codeforces round 1100


下一篇:OpenCV2:Mat