#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int n,m,k;
int FW[40],i,j,q,MYL[40]={0},table[7][40];
char flag,f[40],h;
while(k)
{
cout << "请输入页面个数(最多40个):" << endl;
cin >> n;
cout << "请输入物理块个数(最多7个):" << endl;
cin >> m;
cout << "请输入页面访问序列" << endl;
for(i = 0; i < n; i++)
cin >> FW[i];
cout << endl;
for(i = 0; i < n; i++)//查页表,看是否缺页
{
q = 0;
while((FW[i] != MYL[q]) && (q != m))
q++;
if(q == m)
flag = '*';//缺页,则致flag为'*'
else
flag = ' ';//不缺页,则致flag为' '
for(j = q; j > 0; j--)
MYL[j] = MYL[j-1];//互换
MYL[0] = FW[i];//将访问的序号放在最上面
for(j = 0; j < m; j++)
table[j][i] = MYL[j];//放入正确位置
f[i] = flag;
}
cout << "输出结果如下:" << endl;
for(i = 0; i < m; i++)
{
for(j = 0; j < n; j++)
printf("%3d",table[i][j]);
cout << endl;
}
for(i = 0; i < n; i++)
printf("%3c",f[i]);
cout << endl;
cout << "你还想继续吗?是,请按Y或y,如果不是请按任意键!" << endl;
cin >> h;
if(h == 'Y' || h == 'y')
k = 1;
else
break;
//k = 0;
}
return 0;
}
LRU页面置换算法
最新推荐文章于 2022-11-17 14:19:36 发布