如何计算哪个虚拟逻辑地址对应物理地址



假设当前在处理器上运行的进程的页面表如下图所示。所有数字都是十进制的,所有以0开头的数字和所有地址都是内存音节地址。页面大小为1024字节。

以下每个逻辑(虚拟(地址对应哪个物理地址(如果有的话(?指示翻译标题时是否出现页面错误。

以下每个逻辑(虚拟(地址对应哪个物理地址(如果有的话(?指示翻译标题时是否出现页面错误。a( 1085b( 2321c( 5409

有效/无效位01411720//tr>31240-510

我想你可以从这个问题中猜出大多数配置。我以a(为例。也许你可以告诉我,如果我答对了,然后你可以自己解决剩下的问题?

第一步是确定表示页表中偏移量的虚拟地址部分和表示物理帧中偏移量部分是什么。对于地址1085和1024字节的页面大小,您需要10位用于物理帧中的偏移,其余用于页面表中的偏移。

1085 decimal = 0x43D = 0b100 0011 1101

十个最低有效位(右边(是物理帧中的偏移量。这就是0b00 0011 1101 = 0x3D = 61 decimal。现在你知道了,物理帧中的偏移量将是61字节。

要计算这个偏移量将在哪一页中,您可以取剩余的位(向左(。这就是0b1 = 0x1 = 1 decimal。这引用了页表条目1。页面表条目1设置了有效位。这意味着该页面存在于内存中,不会导致页面故障。页面表条目指向第7帧。第7帧之前有7帧:第0帧、第1帧、第2帧、第3帧、第4帧、第5帧和第6帧。因此,该虚拟地址应当转换为7 * 1024 + 61 = 7229

最新更新