vmm_test初步研究

vmm_test 的实现机制

 

my_test 通常也称为wrapper class . 上图中红颜色的是静态object

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的LRU页面置换算法函数示例,用于演示LRU算法的页面置换过程: ```C++ #include <iostream> #include <vector> #include <list> using namespace std; // LRU页面置换算法函数 void LRU(vector<int>& pages, int capacity) { // 创建一个双向链表表示页面访问历史记录 list<int> ps; // 创建一个哈希表表示页面是否在内存中 unordered_map<int, list<int>::iterator> page_map; // 遍历页面序列 for (int i = 0; i < pages.size(); i++) { int page = pages[i]; // 如果页面不在内存中 if (page_map.find(page) == page_map.end()) { // 如果内存已满,移除最近最少使用的页面 if (ps.size() == capacity) { int last_page = ps.back(); ps.pop_back(); page_map.erase(last_page); } // 将新页面插入到页面访问历史记录的头部 ps.push_front(page); page_map[page] = ps.begin(); } // 如果页面已经在内存中 else { // 更新页面访问历史记录,将访问的页面移动到头部 ps.erase(page_map[page]); ps.push_front(page); page_map[page] = ps.begin(); } // 显示当前页面访问历史记录 cout << "访问页面 " << page << " 后的页面访问历史记录:"; for (auto it = ps.begin(); it != ps.end(); it++) { cout << *it << " "; } cout << endl; } } int main() { // 测试数据 vector<int> pages = {1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5}; int capacity = 3; // 调用LRU页面置换算法函数 LRU(pages, capacity); return 0; } ``` 该函数接受一个页面序列和内存容量作为参数,使用双向链表和哈希表实现LRU页面置换算法,模拟页面访问历史记录和页面置换过程,并输出每次访问后的页面访问历史记录。在测试数据中,页面序列为{1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5},内存容量为3,运行结果如下: ``` 访问页面 1 后的页面访问历史记录:1 访问页面 2 后的页面访问历史记录:2 1 访问页面 3 后的页面访问历史记录:3 2 1 访问页面 4 后的页面访问历史记录:4 3 2 访问页面 1 后的页面访问历史记录:1 4 3 访问页面 2 后的页面访问历史记录:2 1 4 访问页面 5 后的页面访问历史记录:5 2 1 访问页面 1 后的页面访问历史记录:1 5 2 访问页面 2 后的页面访问历史记录:2 1 5 访问页面 3 后的页面访问历史记录:3 2 1 访问页面 4 后的页面访问历史记录:4 3 2 访问页面 5 后的页面访问历史记录:5 4 3 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值