操作系统模拟页面调度算法(OPT、FIFO、LRU)演示(vc2010调试通过)(二)
2014-05-23 01:09
537 查看
#include <iostream> #include <vector> #include <list> #include <iomanip> /************************************************************************ *@description: 模拟虚拟存储管理器的页面调度 *@author : kernel_main *@create time: 2014.05.22 *@email : zww0815@gmail.com ************************************************************************/ using namespace std; typedef list<int> LIST_INT; typedef list<int>::iterator ITER_LIST_INT; typedef vector<int> VEC_INT; typedef vector<int>::iterator ITER_VEC_INT; #define PAGE_NUM 3 typedef enum { RETURN_FIND, RETURN_NOT_FIND, } tag_FIND_FLAG; void FIFO(VEC_INT arr) { tag_FIND_FLAG flag = RETURN_NOT_FIND; LIST_INT list; int cur_cnt = 0; int not_find_cnt = 0; int cnt = 0; list.assign(PAGE_NUM,0); for (ITER_VEC_INT iter=arr.begin();iter!=arr.end();iter++) { cout << setw(2) << ++cnt << "--------------push" << setw(3) << *iter << " ==> "; flag = RETURN_NOT_FIND; for (ITER_LIST_INT iter_list=list.begin();iter_list!=list.end();iter_list++) { cout << *iter_list << " "; if (*iter_list == *iter) { flag = RETURN_FIND; } } if (RETURN_FIND == flag) { cout << setw(10) << "命中*" << endl; } else { cout << setw(10) << " 缺页中断^" << endl; not_find_cnt++; if (PAGE_NUM == list.size()) { list.pop_front(); list.push_back(*iter); } else { list.push_back(*iter); } } } cout << endl << "总共中断次数: " << not_find_cnt << endl; } int main() { VEC_INT vec; int arr[] = {1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6}; for (int i=0;i<sizeof(arr)/sizeof(int);i++) { vec.push_back(arr[i]); } FIFO(vec); }
相关文章推荐
- 操作系统模拟页面调度算法(OPT、FIFO、LRU)演示(vc6.0调试通过)
- VC++实用小代码(在vs2003调试通过)
- 100%通过DCMTK(3.54/3.55)编译(MS VC6-VC2010)
- 页面置换算法-FIFO、LRU、OPT
- 《Visual C++ 2010入门教程》系列六:VC2010常见调试技术
- OCCI入门(VC2010下配置) 32位测试通过
- 使用 异步多线程TCP Socket 实现进程间通信(VC 6.0 , BCB6.0调试通过)
- FIFO、LRU、OPT的三个简单实现
- 《Visual C++ 2010入门教程》系列六:VC2010常见调试技术
- 100%通过DCMTK(3.54/3.55)编译(MS VC6-VC2010)
- FIFO、LRU、OPT这三种置换算法的缺页次数
- 100%通过DCMTK(3.54/3.55)编译(MS VC6-VC2010)
- VC_VC2010打开调试单个CPP文件的COUT时候不会出现press any key to continue
- 《Visual C++ 2010入门教程》系列六:VC2010常见调试技术
- 使用 异步多线程TCP Socket 实现进程间通信(VC 6.0 , BCB6.0调试通过)
- FIFO、LRU、OPT这三种置换算法的缺页次数
- 通过vc的断点来调试程序
- FIFO, LRU, OPT 页面置换算法
- VC2010 MFC中实现printf调试功能,即MFC程序利用控制台输出调试信息
- 操作系统——页置换算法(FIFO,OPT,LRU)