逻辑地址与物理地址的计算涉及页号和物理块号和页内偏移

时间:2024-03-09 08:12:57

 

某计算机系统页面大小为4K,进程的页面变换表如下所示。若进程的逻辑地址为2D16H。该地址经过变换后,其物理地址应是()

第一步,先将系统页面大小按字节单位byte化成二进制,那么4*1024=4096

 

 

 

例子:4K,4096/16=256,余数为0    记录一个0

256/16=16,余数为0          记录一个0

16/16=1,  余数为0         再记录一个0    最后结果为1.

那么从最后的结果记录十六进制得出结果:1000!然后化成二进制,0001  0000  0000  0000  一共有12个0

这里的4K转成二进制的12个0,就代表了逻辑地址的后12位,是页内偏移量。  

第二步:把逻辑地址  2D16H  转成二进制如下:

0010  1101  0001  0110    这里的后12位取出来!

前4位二进制化成的十进制对应页号    0010  对应页号2,物理块号4!化成二进制是:0100

第三步:把上面物理块号二进制作为物理地址的开头二进制!把逻辑地址的后12位取出来,作为物理地址的后12位!组合如下:

0100  1101  0001  0110  化成16进制的物理地址是:4D16H  

 —————————————————————————————————————————————————————————————————

某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时一用户页表中已调入内存的页面的页号和物理块号的对照表如下:

 

则逻辑地址  0A5C(H)  所对应的物理地址是什么?

分析:这道题有多种方法计算结果,这里还是沿用上面的方法来计算!需要留意的是每个页面的大小,以及逻辑地址  

页面大小1K即是1024的二进制表示为:  0100  0000  0000  这里一共有10个0!取逻辑地址的后10位作为物理地址的实际地址

逻辑地址的二进制为:  0000  1010  0101  1100  后10位是:  10  0101  1100  

逻辑地址的剩余位是:  000010  前面多余的2位0可以省略,化成十进制为2,页号2对应物理块号  11

物理地址块号11直接化成二进制是:  1011  

将块号的二进制以及逻辑地址的后10位拼在一起是:  1011  10  0101  1100  中间不够4位,前面的向后移,前面不够4位,直接加0!!那么,真正的逻辑地址二进制是:  0010  1110  0101  1100  化成十六进制是:2E5CH  

总结一下里面经历过的进制转换:

1:页面大小K化成字节即是乘以1024,再化成二进制。看里面的0的个数,这里假设为n个

2:逻辑地址的后n位置取出来作为物理地址的后n位的真实地址,逻辑地址的剩余位化成  十进制  对应页号表  

3:页号表对应的物理块号是  十进制  ,化成二进制作为物理地址的开头

4:将整个物理地址拼好,将二进制换算成十六进制 

5:特别注意,如果剩余N位的十进制超出表给出的页号表,则为超出范围。要么是超出范围,要么是你算错了! 

6:有的计算题给的页面单位为:M!!,这里的单位是  K  !!请仔细注意换算后有多少个0

7:计算地址必须仔细看参数!最重要的参数是:每页面的大小单位K 而且必须要化成字节(byte)才能换算!即是要乘以1024

—————————————————————————————————————————————————————————————————

 分页式存储管理系统中,主存容量为1M
假定某采用分页式虚拟存储系统中,主存储容量为1M,被分为256份,某作业的地址空间占4页,页号为0,1,2,3,被分配要主存的第2,4,1,5块中,回答


(1)主存地址应该用是____位来表示  


(2)作业每一页的长度为_____,逻辑地址中的页内地址(单元号)占用____位

 分析:主容量为1M!而且被分成256份!那么先把M化成k吧! 

1*1024=1024K  1024K被分成256份,那么每一份的大小为:1024除以256=4K  问题(2)中的每页长度为4K,然后4K换算成二进制即是212次方!12个0!!这里的页内地址是术语,意思即是对应物理地址的真实二进制地址!即是后面的12位。问题(2)中的答案为占用了12位

1024K*1024=1048576Byte  这个时候再换算成二进制!即是220次方,有20个0!问题(1)中的答案为  20