最优缓存管理(Optimal Caching)
1 简介
生活当中,常常发生这样的事,在做研究或者学习时,你列出了一些书来做参考。然而,你的书桌最多只能放k本书,但是你需要的书的数量大于k。因此,当你需要某本书,但它又不在桌上时,你需要前往图书馆去换书,而前往图书馆需要耗费大量的时间。那么,问题来了,如何对你的书桌进行管理才能让换书的次数最少?
类似的,计算机的缓存存取速度很快,但是容量有限,所以很多数据存放在硬盘当中。而从硬盘当中读取数据十分耗时,所以我们需要通过某种方式来对缓存进行管理以减少这样的耗时。
在20世纪60年代Les Belady提出了Farthest-in-Future Algorithm,内容如下:
When di needs to be brought into the cache:
evict the item that is needed the farthest into the future
例如一个缓存大小为3,初始时内容为{a,b,c}。需要的数据串为:
a, b, c, d, a, d, e, a, d, b, c
在第四个时刻,d不在缓存中,所以需要替换调一个数据。通过观察可以发现,c离得最远,所以把c换掉。
2 证明
总之,有如下事实:
对于规划 S S S,它的前j个时刻的缓存状态和使用Farthest-in-Future的规划 S F F S_{FF} SFF