操作系统课程设计_先进先出页面置换算法

操作系统课程设计_先进先出页面置换算法|课程设计|计算机数据库课程设计

页式虚拟存储管理程序模拟
一、    实验题目:先进先出页面置换算法
三、    实验内容:
这个算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰.
三、程序设计及实现过程
        先产生一串随机数放在数组中,然后输出这个数组,表示页面号引用串.然后进行计算并输出结果.这里我使用了一个数组来存放当前内存的页面号,当产生新的页面申请时,判断数组中有与之相同的数吗,若有则直接输出这个数组,若没有则舍去最下面的数让上面的数依次放在下面,把新产生的数放在最上面.然后在数据下面输出一个*号,代表发生了缺页中断.
四、实验结果及分析
    结果: 输出发生几次缺页中断和页面置换.
    分析: 利用一个计数变量,只要发生中断就加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++;
}    
}

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有