📄 ymzh.c
字号:
页式虚拟存储管理程序模拟这个算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰.程序设计及实现过程 先产生一串随机数放在数组中,然后输出这个数组,表示页面号引用串.然后进行计算并输出结果.这里我使用了一个数组来存放当前内存的页面号,当产生新的页面申请时,判断数组中有与之相同的数吗,若有则直接输出这个数组,若没有则舍去最下面的数让上面的数依次放在下面,把新产生的数放在最上面.然后在数据下面输出一个*号,代表发生了缺页中断. 结果: 输出发生几次缺页中断和页面置换. 分析: 利用一个计数变量,只要发生中断就加1,最后输出就行了.#include<iostream.h>void main(){ cout<<"****************************************"<<endl; cout<<" FIFO算法置换 "<<endl; cout<<"****************************************"<<endl; int n,m,k; int i=0,j=0,count=0; int a[32],b[32]; cout<<"请输入内存容量m:"; cin>>m; cout<<"请输入页面次序:"<<endl; for(i=0;i<10;i++) { cin>>n; a[i]=n; } for(j=0;j<m;j++) //初始化b[j];使等于-1,表示开始时内存中无页面. { b[j]=-1; } i=0; j=0; while(i<10){ for(k=0;k<m;k++){ if(b[k]==a[i]) { cout<<"内存中有这个页面,直接访问."<<endl; break; } } // 判断内存中是否有该页面. if(k==m) { if(b[m-1]<0) { b[j]=a[i]; cout<<b[j]<<"页面进入内存 , "; count++; cout<<"产生"<<count<<"次缺页"<<endl; j++; j=j%m; } else { count++; cout<<b[j]<<"被置换出去,产生"<<count<<"次缺页" <<endl; b[j]=a[i]; j++; j=j%m; } }i++;} }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -