1.使用以下参数生成随机地址:-s 0 -n 10,-s 1 -n 10 和-s 2 -n 10。将策略从 FIFO 更改
为 LRU,并将其更改OPT。计算所述地址追踪中的每个访问是否命中或未命中。
FIFO:

这里可以看出cache是三位

查看结果:

后面两个随机种子同上,只看结果。


LRU:LRU策略决定替换哪个页将基于“局部性原则”,根据历史近期访问决定替换哪个页



查看答案:

后面两个随机种子同上:


OPT:OPT最优策略决定替换哪个页将基于未来的访问情况,将未来最远访问的页替换掉



查看答案:

后面两个随机种子同上:


2.对于大小为 5 的高速缓存,为以下每个策略生成最差情况的地址引用序列:FIFO、
LRU 和 MRU(最差情况下的引用序列导致尽可能多的未命中)。对于最差情况下的引用序列,需要的缓存增大多少,才能大幅提高性能,并接近 OPT?
序列为:1,2,3,4,5,6 即可。
像这种会造成抖动的序列,需要至少增大到序列个数才行。
3.生成一个随机追踪序列(使用 Python 或 Perl)。你预计不同的策略在这样的追踪序
列上的表现如何?


写的python代码需要给权限才能运行(绿色可以运行)

使用如下命令:
./paging-policy.py -f 1.txt -p FIFO -c
./paging-policy.py -f 1.txt -p LRU -c
./paging-policy.py -f 1.txt -p OPT -c
FIFO:

LRU:

OPT:

OPT的命中率会高一点,预计随着数据数量的增加,这种差距会变得更大
4.现在生成一些局部性追踪序列。如何能够产生这样的追踪序列?LRU 表现如何?RAND
比 LRU 好多少?CLOCK 表现如何?CLOCK 使用不同数量的时钟位,表现如何?

测试命令:
./paging-policy.py -f 1.txt -p LRU -c
./paging-policy.py -f 1.txt -p RAND -c
./paging-policy.py -f 1.txt -p CLOCK -c
类似于第三小题,LRU的表现略好于RAND。
经过不完全测试,CLOCK bit为1时表现差于LRU,提高bit时出现好于LRU的情况,且在一定数值内bit越高表现越好。

被折叠的 条评论
为什么被折叠?



