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的单位默认是字节)