逻辑地址转物理地址(操作系统)

1.前提明确(16进制):

逻辑地址=页号+页内地址

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

可以较为明显的观察出:逻辑地址和物理地址的不同在于页号和块号的不同

那么什么是页号和块号呢举个例子就明白了

2.下面逻辑地址转物理地址的例子

注意:这里的逻辑地址是16进制(不是16进制的你可以转成16进制,但一般都是16进制的)

设某用户的编程空间共32个页面,每页为1KB,内存容量为16KB。假定用户程序的页表如下所示。请计算逻辑地址0A5CH所对应的物理地址

在这里插入图片描述

2.1.首先分析题意:

32个页面也就是0-31个页号(一般都是这样,但不是关键),主要是看每页的大小.该题每页1kB,由于1kB=2的10次方,所以页内地址位数为10位,由于逻辑地址16进制0A5CH转成二级制为:0000 1010 0101 1100,可以得到如下图。
在这里插入图片描述

即页号占前6位和页内地址占后10位,他俩一共形成了16进制的16位。要注意通过页面大小转成2的n次幂,这个n代表的是页内地址位数,也就是这个图的后半部分。

2.2算出物理地址:

这个时候已经知道:页内内地址等于=10 0101 1100,页号=0000 10,那么算出块号就可以了,根据题的图表可以看出给的都是10进制的,所以你要把你的页号转成10进制。页号=0000 10(二进制)=2(10进制),找到图片的对应关系页号2对应的块号是4,这个4要转成2进制,也就是0001 00。那么物理地址也就算出来了。

在这里插入图片描述

3.对于逻辑地址不是16进制的

知道:

​ 页号=逻辑地址/页面大小字节=(取整数)
​ 页内地址=逻辑地址%页面大小字节=(取余数)

可得:

物理地址为=块号*页面大小+页内地址

4.总结

无论是不是16进制的,页内地址是一样的,只要算出块号就可以了,然后采用各自相对应的方法就可以了。(要留意页内大小和图中给的页号和块号的对应表,如果是逻辑地址后跟个数字,如:逻辑地址4865,这4865的单位默认是字节)

  • 59
    点赞
  • 247
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值