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

📄 fifo算法.txt

📁 为帮助大家复习《操作系统》课程
💻 TXT
字号:
#include<iostream>
using namespace std;
int pagenum=0;             ///内存的页面数
int total=0;               ///要访问的叶面总数
int lacknumber=0;              ///缺页的总数
void main()
{
 int array[1][20];             //0代表没有内容
 for(int y=0;y<2;y++)
 for(int x=0;x<20;x++)
 {array[y][x]=-1;}
 int seque[20]={0};
 cout<<"请输入内存的页面数:";
    cin>>pagenum;
 cout<<"请输入页面的访问顺序(输入-1结束):";
 for(int i=0;i<20;i++)
 {
  int num;
  cin>>num;
  if(num!=-1)
  {
   seque[i]=num;
            total++;
  }
  else
  {seque[i]=num;break;}
 }
 cout<<"总的页面数为"<<total<<endl;           ///总的页面数
    int j=0;
    for(i=0;i<pagenum;i++)     //刚开始置换前pagenum个空页面
 {
     if(i<pagenum)
   {
  array[0][i]=seque[i];
  cout<<"页面"<<seque[i]<<"进入内存"<<endl;
  cout<<"缺页  此时页面内容为";
  for(int j=0;j<pagenum;j++)
  {cout<<array[0][j]<<" ";}
  cout<<"(-1代表没有内容)"<<endl;
   }
    cout<<endl;
 }

int kk=0;
for(i=pagenum;i<total;i++)
{
 int flag=0;
 for(int k=0;k<pagenum;k++)
 {
   if(array[0][k]==seque[i])
   {flag=1;break;}
 }  
     cout<<endl;
  if(flag==1)
  {   cout<<"页面"<<seque[i]<<"进入内存"<<endl;
    cout<<"此时页面内容为";
  for(int j=0;j<pagenum;j++)
  {cout<<array[0][j]<<" ";}
  }
     cout<<endl;
  if(flag==0)
  {
  int tem=array[0][kk];
        array[0][kk]=seque[i];
  cout<<"页面"<<seque[i]<<"进入内存"<<endl;
        cout<<"缺页  页面"<<tem<<"被替换"<<endl;
    cout<<"此时页面内容为";
     for(int j=0;j<pagenum;j++)
  {cout<<array[0][j]<<" ";}
  cout<<endl;
  kk++;
  lacknumber++;               //缺页数
  if(kk==pagenum)
  {kk=0;}
  }
}
        lacknumber=pagenum+lacknumber;
  
  cout<<"缺页率="<<lacknumber<<"/"<<total<<"="<<float(lacknumber)/float(total)<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -