OneCompiler

fifo

119

#include <stdio.h>

int nof = 0;
int nor = 0;

int table[10][20];
int ref[20];
int frame[10];

int page_fault = 0;

int main(void)
{
void accept(void);
void fifo(void);
void display(void);

accept();
fifo();
display();

return(0);

}

void accept(void)
{
int i = 0;
int r = 0;

printf("\n\nEnter Number Of References : ");
scanf("%d",&nor);

for(r = 0; r < nor; r++)
{
	printf("\nEnter the page reference : ");
	scanf("%d",&ref[r]);
}
printf("\n\nEnter Number Of Frams : ");
scanf("%d",&nof);

for(i = 0; i < nof;i++)
{
	frame[i] = -1;
}

}

void fifo(void)
{
int search(int);

int i = 0,r = 0;
int found = 0;
int pos = 0;
int j = 0;

for(r = 0; r < nor; r++)
{
	found = search(ref[r]);
	if(found == -1)
	{
		page_fault++;
		frame[pos] = ref[r];

		pos = (pos + 1) % nof;

		for(i = 0; i < nof;i++)
		{
			table[i][r] = frame[i];
		}
	}
	else
	{
		for(i = 0; i < nof;i++)
		{
			table[i][r] = frame[i];
		}
	}
}

}

int search(int num)
{
int i = 0;

for(i = 0; i < nof;i++)
{
	if(num == frame[i])
	{
		return(i);
	}
}

return(-1);

}

void display(void)
{
int i = 0;
int r = 0;
printf("Referernce String : \n\n|");

for(i = 0; i < nor;i++)
{
	printf(" %2d |",ref[i]);
}
printf("\n|---------------------------------------------------------------|\n");

for(i = 0; i < nof;i++)
{
	printf("|");
	for(r = 0; r < nor;r++)
	{
		printf(" %2d |",table[i][r]);
	}
	printf("\n");
}

printf("\n\nNumber Of page_fault : %d\n",page_fault);

}