Algorithm 页面错误与LRU算法

Algorithm 页面错误与LRU算法,algorithm,lru,page-fault,Algorithm,Lru,Page Fault,主存储器最多可保留4页。如果以下页面使用LRU算法,哪个页面将是第一个出现页面错误的页面 1,2,3,1,2,4,1,2,3 这是一道我认为没有答案的试题。主存可以保留4个页面,因为有1、2、3、4个页面,所以不应该出现页面错误 答案是第4页,但我不明白为什么。唯一有意义的方法是,如果顺序中的数字是内存中的页码,而不是从磁盘检索的页面 换句话说,它们是已选择用于将页面加载到的页码。这一点(至少是默认的)“如果LRU算法按顺序在以下页面上使用”得到了支持 LRU算法用于选择要丢弃并重新使用的页面,

主存储器最多可保留4页。如果以下页面使用LRU算法,哪个页面将是第一个出现页面错误的页面

1,2,3,1,2,4,1,2,3

这是一道我认为没有答案的试题。主存可以保留4个页面,因为有1、2、3、4个页面,所以不应该出现页面错误


答案是第4页,但我不明白为什么。

唯一有意义的方法是,如果顺序中的数字是内存中的页码,而不是从磁盘检索的页面

换句话说,它们是已选择用于将页面加载到的页码。这一点(至少是默认的)“如果LRU算法按顺序在以下页面上使用”得到了支持

LRU算法用于选择要丢弃并重新使用的页面,因此,如果选择了第1页,则会导致页面被替换

从这个意义上讲,第四页是:

1,2,3,1
      ^
      |
      +-- this one.
而且,由于内存中的第一个页面已经在使用中,因此会出现页面错误,从而将新页面带入内存中


我想不出有任何其他情况能与这个答案相匹配。

第一个“1”将是第一个页面错误,因为开始时帧是空的,当第一次调用“1”时,它将显示页面错误,因为帧是空的。 总的页面错误数将为4。

(即使在这篇文章中,我只是添加了一些其他答案中没有描述的见解) LRU由Unix通过维护所有页面的链接列表来实现。此列表的正面将显示最近使用的页面,而背面(尾部)将显示最近使用最少的页面 由于列表是在每个内存引用上重新组织的,所以我们感兴趣的是4页的最后顺序4,1,2,3


在给定的页面序列中,4是最近使用最少的页面,而3是最近使用的页面。所以第4页将在列表的后面。任何导致清除其中一个页面的事件都会将第4帧翻出,因为它位于列表的后面

第一帧中不会有页面错误吗?因为第一次必须有一个页面错误,才能进入页面。或者这不算是错误?否则就不会有页面错误。@Vinayak Garg我的想法完全正确,但答案是第4页。这对我来说毫无意义。要么答案是错的,要么问题是错的;)或者我们对问题和/或答案的理解可能是错误的。我给出的答案或许可以解释这一点,但这是一个很长的弯道,我会把提出这个问题的人描述为一个疯狂的疯子:——)