⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ymzh.c

📁 LRU页面置换算法
💻 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 + -