操作系统虚拟地址计算物理地址

有关计算机操作系统中虚拟地址转换为物理地址的计算

笔者以具体题目加以说明:

在一个分页虚拟存储系统中,用户编程空间为32个页,页长为1 KB,内存空间为16 KB。如果应用程序有10页长,若已知虚页0、1、2、3,已分得页框4、7、8、10,试把虚拟地址 0AC5(H)转换为对应的物理地址。

解答如下:
页长 1 KB = 2^10 ,说明后10位表示的是页内偏移地址
32个页 32 = 2^5,说明页内偏移地址的前五位是页号地址

可知:
0AC5 用二进制表示为:0000 1010 1100 0101
加粗的5个数字即为页号地址;斜着的10个数字即为页内偏移地址

把页号地址单独拿出来算:00010 将其换算为十进制,为2;则说明此地址为 页号2(虚拟地址中的页号地址) ,由题可得:页号2对应的页框为8,再将8转换为十六进制数:01000(为物理地址中的页号地址);

最后将我们计算得来的十六进制数替换掉加粗的数字,即得最终的物理地址:

0010 0010 1100 0101 再换算成十六进制为:22C5


版权声明:本文为weixin_43741329原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。