首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面错误和LRU算法

页面错误和LRU算法
EN

Stack Overflow用户
提问于 2012-08-25 16:00:26
回答 3查看 2.1K关注 0票数 0

一个主内存最多可以保留4页。如果在随后的页面上按顺序使用LRU算法,那么哪个页面会第一个出现页面故障?

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

这是一个我认为没有答案的测试题。主存可以保留4个页面,因为有页面1、2、3、4,所以应该不会发生页面故障。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-25 16:24:34

唯一有意义的方法似乎是,该序列中的编号是内存中的页号,而不是从磁盘检索的页。

换句话说,它们是为加载页面而选择的页码。这是(至少是默许的)由短语“如果LRU算法被使用在下面的页面上是有序的”。

LRU算法用于选择丢弃和重用哪个页面,因此,如果选择的是页面1,则这将导致页面被换出以进行替换。

所以在这个意义上的第四页是:

代码语言:javascript
复制
1,2,3,1
      ^
      |
      +-- this one.

而且,因为第一个内存中的页面已经在使用中,所以会发生页面错误,从而将新页面引入到它中。

我想不出任何其他的场景,甚至可以接近这个答案。

票数 2
EN

Stack Overflow用户

发布于 2013-01-31 23:30:08

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

票数 0
EN

Stack Overflow用户

发布于 2015-09-22 13:45:54

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12120255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档