?? fifo算法.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 + -