页式存储管理(FIFO算法)
来源:互联网 发布:ubuntu删除谷歌输入法 编辑:程序博客网 时间:2024/06/05 22:43
今天,第一次写博客,有点小激动。
这次的题目是页式存储管理,要求输入内存页面数,进程访问序列个数以及进程的页号,根据FIFO算法求出淘汰页号,缺页页号,缺页次数,缺页率,默认内存3个物理块,且是单进程。本次实验用到了队列,将物理块中页号,淘汰的页号,缺页号压入队列,最后打印出来,并根据缺页队列长度计算缺页率。
#include <iostream>#include<queue>using namespace std;int main(){//输入内存页面数,进程访问序列个数以及进程的页号,根据FIFO算法求出淘汰页号,缺页页号,缺页次数,缺页率//默认内存有3个物理块,单进程queue<int> pro; //物理块队列queue<int> th; //淘汰队列queue<int> nopage;//缺页队列int page, num,nopagenum;cout << "请输入内存页面数:";cin >> page;cout << endl;cout << "请输入进程访问序列的个数:";cin >> num;cout << endl;int *process;process = new int[num];cout << "请依次输入进程的页号:";for (int i = 0; i < num; i++){cin >> process[i];} cout << endl;//FIFO算法int a = process[0];int b = process[1];int c = process[2];pro.push(a);pro.push(b);pro.push(c); //缺页处理for (int i = 3; i < num; i++){if (process[i] != a && process[i] != b && process[i] != c){ pro.pop(); //淘汰物理块队列中队首元素,队首是最先进来的,因此最先淘汰pro.push(process[i]); //将缺页号压入物理块队列队尾,这是此时3个物理块中的页号th.push(a); //将淘汰页号压入淘汰队列a = b;b = c;c = process[i];nopage.push(process[i]);//将缺页号压入缺页队列}}nopagenum = nopage.size()+3; //接下来要返回缺页队列队首元素并删除,删除后队列为空, //因此要先取出该队列长度 ,最先访问3个页号时,物理块为空,因此缺页次数+3cout << "淘汰的页号依次为:";while (!th.empty()){cout << th.front() << " ";//依次返回淘汰队列队首元素,队首是最先从物理块中淘汰的th.pop(); //将刚才的队首删除,使得队首后面的元素成为队首}cout << endl; cout << "缺页的页号依次为:" << process[0] << " " << process[1] << " " << process[2] << " ";while (!nopage.empty()){cout << nopage.front() << " ";//依次返回缺页队列队首元素nopage.pop();}cout << endl;cout << "缺页次数为:" << nopagenum << endl;cout << "缺页率为:" << nopagenum /(double) num<<endl;system("pause");return 0;}
2 0
- 页式存储管理(FIFO算法)
- 分页式存储管理页面置换算法——LRU、FIFO、改进型的CLOCK算法
- 【存储管理】请求淘汰换页算法先进先出算法(first input first output,FIFO)
- OS 请求调页存储管理方式的FIFO、LRU、OPT、LFU置换算法模拟
- 虚拟内存-页式存储管理算法
- 操作系统——页置换算法(FIFO,OPT,LRU)
- FIFO算法
- FIFO存储深度(容量)计算
- FIFO存储深度(容量)计算
- 请求式分页存储管理算法(操作系统)C/C++
- 操作系统:虚拟页式存储管理(缺页中断、页面置换算法)
- 页式存储管理
- 页式存储管理
- 页式存储管理
- 页式存储管理
- 页置换算法FIFO、LRU、OPT
- 页置换算法FIFO、LRU、OPT
- 页置换算法FIFO、LRU、OPT
- ios 约束(五)
- java中对象创建、初始化、引用
- deque与vector的主要区别
- 147. Insertion Sort List leetcode list
- Ubuntu 16.04 安装 Tensorflow(GPU支持)
- 页式存储管理(FIFO算法)
- Android on ROS
- 使用Python实现神经网络
- debian使用gitolite搭建git服务器
- 基于MVC开发模式的javaWeb项目开发流程
- MYSQLMTOP!开源MYSQL监控系统
- TensorFlow1: 评论分类
- 链表的创建
- TensorFlow2: 评论分类