Amo*_*rma 4 paging operating-system virtual-memory
是什么决定了必须分配给虚拟内存环境中正在运行的进程的最小页面帧数.
我发现上述问题的答案是instruction set architecture
但却无法理解其背后的原因.
请解释.
编辑: 问题在以下链接http://www.geeksforgeeks.org/archives/4036(见问题3),我无法理解答案背后的逻辑.
Dee*_*ght 16
是的ISA确实发挥了作用.
想象一下这个假设条件,如果ISA支持一个指令(如x86中的mov),它可以在3个间接级别之后取一个操作数(回想一下x86的间接寻址模式).让我们调用这个系统A.
在另一个系统上,你最多可以有2个间接调用它.
在A和B上,如果我们给出4作为最小帧数,看看会发生什么.B运行正常而不是A这里的原因是:
当一个在其操作数中具有3级间接的指令被加载到cpu中执行时,请记住我们这个进程只有4个帧,假设这个场景第
1帧将用于指令本身.
第2帧将用于第1级间接操作数在另一页面中,
帧3将用于第二级间接,可能这不在先前分配的帧的地址范围内.
第4帧与下一级间接相同.
现在回想起管道,只有在操作数提取完成后我们才能进入下一个执行阶段,但是我们没有最后的操作数,我们只有它在第4帧的地址,现在你得到了一个页面错误,所以你删除一个先前分配的帧来处理并重新启动导致错误的指令,但同样的事情发生了.系统B没有这个问题.
据我所知,这是ISA在决定进程的最小帧数方面发挥作用的方式.请参考galvin我认为这本书涵盖了虚拟内存部分.
但这是理论上的,我不知道这个过程是如何在像linux这样的真实系统中进行的.
干杯:)
编辑: - 如您指向的链接中给出的指令可能跨越页面边界