我在编程讲座中理解某些内容时遇到了麻烦。我知道页面替换算法有页面错误。
在LRU算法中,何时发生页面错误?是否没有剩余的可用帧?是框架已经存在,但是已经使用过了吗?
我在演讲中有这张照片(由于原版是另一种语言,我只剪掉了重要部分):
此图中的问题是"只有4帧,如果使用LRU算法,何时会发生页面错误?"正如我所看到的,前3行有一个x。这就是为什么我在询问是否有剩余空闲帧时发生页面错误的原因?或者当我们需要"踢出"时,红色X中的页面错误是仅。一个框架?
答案 0 :(得分:3)
当页面不在其中一个框架中时,会发生页面错误。
因此,如果剩下一些空闲帧并且我们需要输入新页面 - 将发生页面错误,因为该页面尚未在其中一个帧中。 这意味着页面错误将一直发生,直到我们遇到其中一个帧中已经存在的相同页面(数字)。这就是图片前3行中有一个'x'的原因。并且第四行没有'x',因为页面已经在其中一个框架中。
如果所有帧都已经包含页面并且我们输入的新页面已经不在其中一个帧中,则会发生页面错误,我们需要“踢出”一帧以释放一帧对于新页面。这可以通过不同的算法来完成,例如最近最少使用,先进先出等。这就是为什么在图片中,一些'X是红色的,因为发生了页面错误而我们踢了一帧。
感谢@Blorgbeard帮助我的回答。