我正在处理一个问题,其中三个内存页面可用,并且数据应该写入其中一个页面。算法找到最新的n值
要保留历史记录,数据首先写入第一页,如果数据已满,则应使用下一页。最后,最后一页也已满,所以我们必须删除第一页中的数据并使用第一页。等等...
我怎么知道哪个网页是'最古老的'?我如何确定要擦除的内容?
我认为需要一个计数器,并且每次使用新页面时该计数器都会递增。在开始时读取计数器值以查找哪个页面是最新的,然后下一个页面是最老的(自圆形方法)。但是,最终计数器将溢出,计数器重新启动,并且无法确定哪个值最高(因为新值为0)。
实施例:
- 0 0 0(从开始)(使用页0)
- 1 2 0(使用第1页)
- 1 2 3(第2页是使用使用)
- 4 2 3(页0)用于
- 4 5 3(第1页)
- ...
- 255 0 254(我不知道...)
问题是否清楚?否则,我可以尝试重新解释。
为什么不简单地更新值与旧值+ 1模3? – Thijser