最小页面框架



什么决定了必须分配给虚拟内存环境中正在运行的进程的最小页帧数。

我发现上述问题的答案是instruction set architecture,但无法理解背后的原因。

请解释一下。

编辑:问题在以下链接 http://www.geeksforgeeks.org/archives/4036(见问题3),我无法理解答案背后的逻辑。

是的,ISA确实发挥了作用。
想象一下,如果 ISA 支持一条指令(如 x86 中的 mov),该指令可以在 3 级间接处理后采用操作数(回想一下 x86 的间接寻址模式),想象一下这个假设条件。我们称这个系统为 A。
在另一个系统上,您最多可以有 2 个级别的间接寻址称为 B。

在 A 和 B 上,如果我们给出 4 作为最小帧数,看看会发生什么。B 运行良好而不是 A 以下是原因:
当一个操作数中有 3 级间接寻址的指令加载到 CPU 中执行时,请记住我们只有 4 帧用于此过程,假设这种情况
帧 1 将用于指令本身。
第 2 帧将用于操作数位于另一页
中的第 1 个间接级别帧 3 将用于第 2 级间接寻址,这可能不在先前分配的帧的地址范围内。
帧 4 下一级间接寻址也会发生同样的情况。
现在调用流水线,只有在操作数获取完成后我们才能进入下一个执行阶段,但是我们没有最终的操作数我们只有它在帧 4 中的位置的地址,现在你得到一个页面错误,所以你删除了一个先前分配的帧来处理并重新启动导致错误的指令, 但同样的事情再次发生。系统 B 没有此问题。

据我所知,这就是ISA在决定进程的最小帧数方面发挥作用的方式。参考加尔文,我认为这本书在虚拟内存部分涵盖了这一点。
但这是在理论上,我不知道在像linux这样的真实系统中这个过程是怎样的。

干杯:)

编辑:- 如您指出的链接中所述,指令可能会跨越页面边界

最新更新