#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct Pagetable
{
int Pagenum;//页号
int Mark;//标志
int Pageblock;//页架号
int Modifymarkup;//修改标志
int Address;//磁盘上的位置
};
struct Instruct
{
int Pagenum;//页号
char handle;//操作
int pianyi;//偏移量
};
int m,size,F = 0;
//int *queue = new int[];
int *queue = NULL; //dxq ---1
int a = 0;
void FIFO(Pagetable P[], int n, int Pagenum)//参数分别为页表数组,页表数组长度,指令访问的页号
{
if(P[queue[a]].Modifymarkup == 1)
{
printf("保存被修改过的内容!\n");
}
printf("OUT %d\n",queue[a]);
P[queue[a]].Modifymarkup = 0;
printf("IN %d\n",Pagenum);//下三行是用来将指令所需的页面加载到页表中
P[queue[a]].Mark = 0;
P[Pagenum].Pageblock = P[queue[a]].Pageblock;
P[queue[a]].Pageblock = 0;
P[Pagenum].Mark = 1;
queue[a] = Pagenum;
a = (a+1)%m;
F++;
}
/*
int **p = NULL;
p = new int*[3];
for(int i = 0;i<3;i++)
p[i] = new int[4];
for(int i = 0;i<3;i++)
{
for(int j = 0;j<4;j++)
p[i][j] = i+j;
}
for(int i = 0;i<3;i++)
{
for(int j = 0;j<4;j++)
cout<<p[i][j]<<" ";
cout<<endl;
}