系统软件开发实践作业
rustc 1.65.0 (897e37553 2022-11-02)
cargo 1.65.0 (4bc8f24d3 2022-10-20)
LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了。由于无法预测各页面将来的使用情况,只能利用“最近的过 去”作为“最近的将来”的近似,因此,LRU算法就是将最近最久未使用的页面予以淘汰。
目录中共有三个文件夹 .vscode src target,其中 .vscode 是Vscode的配置文件,src 内仅有一个 main.rs 文件保存了全部的代码, target内包含cargo自动编译生成的可执行文件。主目录下的 Cargo.lock Cargo.toml 为Cargo的配置文件。
1.配置对应环境后,将文件下载至本地,通过命令行进入文件所在目录。
2.使用cargo test,运行测试。
本人完成的内容是基于Leetcode上的算法题,页面存储容量为2, 模拟新增页面输入。 为检测算法正确与否,测试用例为
——————检测是否实现了访问热度的更新与删增—————
输入(1,1), (2,2)
访问(1) 输出(1)
输入(3,3)
访问(2) 输出<(1),因为此时2已被删除
输入(4,4)
访问(1), (3), (4) 输出(-1),(3),(4)
———————检测当存在重复的输入时是否完成了覆写————————
输入(4,5)
访问(4) 输出(5),原本的(4,4)被覆写为(4,5)
—————————————改写测试用例——————————————————
将LRUCache::new(capacity)中的capacity改为int范围的正整数来实现存储容量的改变。通过.put(key,value)和.get(key)来模拟页面的输入和访问。通过assert_eq!(a,b)来验证结果是否正确。
输入cargo test后,会显示running test 1 以及 test restult:ok等字样,说明通过了全部的测试点。