Memory management 读取指令可能导致的最大页面错误数?

Memory management 读取指令可能导致的最大页面错误数?,memory-management,operating-system,paging,page-fault,Memory Management,Operating System,Paging,Page Fault,将32位字装入寄存器的一种机器语言指令 包含要加载的字的32位地址。问题是什么 此指令可能导致的最大页面错误数 (Tanenbaum,OS,Q 44) 看起来很简单,只会导致1页错误。当它试图访问32位字时。 (我关于这个问题的理论,请随意忽略它,因为它可能包含许多错误或混乱的事实。) 请告诉我这个问题的正确解决方法。一条读取指令可能会触发多个页面错误。从理论上讲,从一个跨越两个不存在页面的地址读取数据。我发现被接受的答案很奇怪,因为我不明白页面表可能不在主内存中-那么你怎么知道在哪里查找它呢?

将32位字装入寄存器的一种机器语言指令 包含要加载的字的32位地址。问题是什么 此指令可能导致的最大页面错误数

(Tanenbaum,OS,Q 44)

看起来很简单,只会导致1页错误。当它试图访问32位字时。 (我关于这个问题的理论,请随意忽略它,因为它可能包含许多错误或混乱的事实。)


请告诉我这个问题的正确解决方法。

一条读取指令可能会触发多个页面错误。从理论上讲,从一个跨越两个不存在页面的地址读取数据。

我发现被接受的答案很奇怪,因为我不明白页面表可能不在主内存中-那么你怎么知道在哪里查找它呢?:\

我上网找到了这些,我想现在我得到的答案或多或少是可持续的

答案背后的想法是,地址指令可以以某种方式(跨越边界)属于两个页面表

因此,当包含地址的这两个页面都不在主存中时,会发生2个页面错误,而当您试图寻址位于您以前试图访问的单词中的虚拟地址时,会发生另外2个页面错误,总共4个页面错误

我仍然不太确定答案,但这个版本似乎比公认答案的版本简单得多(Occam's Razor),后者假定页表可能不在主内存中。希望这会有帮助