代码已经上传至github
通过下列命令下载
|
|
进入目录,make进行编译
|
|
输入下列命令可运行demo程序
|
|
demo程序中分析的是trace文件夹的下的example文件,更多的trace文件可在网站SNIA网站上下载。
缓存所有的配置信息在config文件中,配置文件属性与值之间以等号连接,注释以#开头
程序入口在cache-sim.cpp中的main函数,可以发现,配置文件通过命令行参数传入,即通过下列命令运行
缓存的初始化
|
|
运行缓存
main()函数通过调用Run对象的exec()方法运行缓存,exec()函数调用了Algorithm类中的kernel()方法。因此kernel()是整个cache-sim的核心方法。
不同的缓存替换算法都继承了Algorithm这个算法父类,并且实现了父类中的虚函数map_operation(),kernel()函数通过调用不同的map_operation()实现不同的替换策略,这一点类似于flashcache的实现,flashcache实现的就是map_operation()所实现的功能,而kernel()则类似于device-mapper层提供的转发功能。
结果显示
本文总阅读量 次
本文由 Yu Zhang 发表于 Yu Zhang's Blog ,采用署名-非商业性使用-禁止演绎 3.0进行许可。
非商业转载请注明作者及出处。商业转载请联系作者本人。