我正在用不同的页面替换算法做一些理论示例,以便更好地了解我实际编写代码的时间。我对这个例子有点困惑。
下面给出的是一个具有4个瓦片(4个部分?(的物理内存。以下页面被一个接一个地访问:
R = 1, 2, 3, 2, 4, 5, 3, 6, 1, 4, 2, 3, 1, 4
在具有4个瓦片的R上运行最佳页面替换算法。
我知道,当需要交换页面时,操作系统会交换出下一次使用最远的页面。在实践中,我会有:
Time 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Page 1 2 3 2 4 5 3 6 1 4 2 3 1 4
Tile 1 1 1 1
Tile 2 2 2
Tile 3 3
Tile 4
我不确定时间4会发生什么,因为我们得到了页面2
,但它已经存在于内存中。通常,如果它是另一个像6
这样的数字,那么它会进入Tile 4
,但在这种情况下我迷路了。
在时间t=4
时,第2页已经存在,因此无需执行任何操作。您可以跳过它,然后转到下一个时间间隔。
如果有另一个像6
这样的号码,如果有可用的插槽,你可以将其移动到那里,或者找到未来最长时间内不会使用的页面并进行交换。