Operating system Can';我不懂迟到';s异常
因此,Belady的异常现象表明,当使用FIFO页面替换策略时,当添加更多页面空间时,我们将有更多的页面错误 我的直觉告诉我们,当我们增加更多的页面空间时,我们应该减少或最多减少相同数量的页面错误 如果我们将FIFO队列视为管道,则添加更多页面空间就像使管道变大:Operating system Can';我不懂迟到';s异常,operating-system,virtual-memory,page-fault,Operating System,Virtual Memory,Page Fault,因此,Belady的异常现象表明,当使用FIFO页面替换策略时,当添加更多页面空间时,我们将有更多的页面错误 我的直觉告诉我们,当我们增加更多的页面空间时,我们应该减少或最多减少相同数量的页面错误 如果我们将FIFO队列视为管道,则添加更多页面空间就像使管道变大: ____ O____O size 4 ________ O________O size 8 那么,为什么会出现更多的页面错误呢?我的直觉是,使用较长的管道时,开始出现页面错误的时间会稍长一些(因此,使用无限长的管道时,不会
____
O____O size 4
________
O________O size 8
那么,为什么会出现更多的页面错误呢?我的直觉是,使用较长的管道时,开始出现页面错误的时间会稍长一些(因此,使用无限长的管道时,不会出现页面错误),然后页面错误的数量会与使用较小的管道时一样多,频率也一样
我的推理有什么问题?当使用FIFO时,增加页面数量会增加某些访问模式中的错误率,这是因为当您有更多页面时,最近请求的页面可能会在FIFO队列的底部停留更长时间 考虑维基百科示例中第三次请求“3”: 页面错误用“f”标记 1: 2: 在第一个示例中(页面较少),有9个页面错误 在第二个示例中(有更多页面),有10个页面错误 使用FIFO时,增加缓存的大小会更改项目的删除顺序。在某些情况下,会增加故障率 Belady的异常并没有说明故障率相对于缓存大小的一般趋势。因此,在一般情况下,您的推理(关于将缓存视为管道)是正确的 总之:
Belady的异常现象指出,有可能利用这样一个事实,即较大的缓存大小会导致缓存中的项目在FIFO队列中的提升时间晚于较小的缓存大小,从而导致较大的缓存大小在特定(可能是罕见的)情况下具有较高的故障率访问模式。只有当当前引用的页面是最后从主存中删除的页面时,Belady的异常才会在FIFO方案中发生。只有在这种情况下,即使增加了更多的页面空间,也会出现更多的页面错误 这句话是错误的,因为它过于笼统: Belady的异常现象表明,当使用FIFO页面替换策略时,当添加更多页面空间时,我们会有更多的页面错误 这是一个更正的版本: Belady的异常现象表明,当使用FIFO页面替换策略时,当添加更多页面空间时,某些内存访问模式实际上会导致更多页面错误
换句话说。。。是否观察到异常取决于实际的内存访问模式。Belady的异常发生在页面替换算法中,不遵循堆栈算法。即帧较少时的页面应该是帧较多时页面的子集。在增加页面帧时,以前存在的页面框架必须存在。这有时会发生在FIFO中,甚至是随机页面替换,但不是LRU或optimal。简而言之,关于Belady的异常,我们可以说“添加更多框架会导致更多页面错误”。即使在阅读维基百科文章并接受答案后,我也无法理解Belady的异常。写下痕迹后,我有点明白了。在这里,我想分享我的理解 理解迟到异常的关键
- 与LRU不同,FIFO只是将最古老的元素推出,而不考虑 频率因此,在FIFO中停留更长时间意味着沦为受害者 驱逐
通过将LRU(最近使用最少的)应用到Wikipedia的示例中,您可能会得到更好的理解。在LRU中,4比3好。不确定您在这里寻找的是什么——WP页面有一个实际的例子:您阅读了吗?这被称为反常现象,因为它与大多数人的直觉背道而驰在这种特殊情况下,拥有更多的页面帧会导致算法将页面保留更长时间,从而减少以后使用的频率,并且它们不会以足够快的速度从FIFO中退出,从而为实际需要的页面腾出空间。但我不知道你能从中得到什么普遍的直觉。这就是可能发生的情况。“在这种情况下,有更多的页面帧会导致算法将页面保留的时间更长,而在以后使用的频率会更低。”我无法理解这会有什么不同。为什么不只是把它们放在记忆中(当你有一根更小的管子时会发生什么情况)就更好呢:在这种情况下,当然会更好,但FIFO无法预测未来。你在维基百科上看过这个例子了吗?但是当第二次访问3的时候,第二次它在缓存中,而我
Page Requests 3 2 1 0 3 2 4 3 2 1 0 4
Newest Page 3f 2f 1f 0f 3f 2f 4f 4 4 1f 0f 0
3 2 1 0 3 2 2 2 4 1 1
Oldest Page 3 2 1 0 3 3 3 2 4 4
Page Requests 3 2 1 0 3 2 4 3 2 1 0 4
Newest Page 3f 2f 1f 0f 0 0 4f 3f 2f 1f 0f 4f
3 2 1 1 1 0 4 3 2 1 0
3 2 2 2 1 0 4 3 2 1
Oldest Page 3 3 3 2 1 0 4 3 2