#include< stdio.h>
#include< conio.h>
int fsize;
int frm[15];
void display();
void main()
{
int pg[100],valid[15],nPage,i,j,k,l,index,pf=0,temp,flag=0,flag1=0;
clrscr();
printf("\n Enter frame size:");
scanf("%d",&fsize);
printf("\n Enter number of pages:");
scanf("%d",&nPage);
for(i=0;i< nPage;i++)
{
printf("\n Enter page[%d]:",i+1);
scanf("%d",&pg[i]);
}
for(i=0;i< fsize;i++)
frm[i]=-1;
printf("\n page | \t Frame content ");
printf("\n--------------------------------------");
for(j=0;j< nPage;j++)
{
flag=0;
flag1=0;
for(i=0;i< fsize;i++)
{
if(frm[i]==pg[j])
{
flag=1;
flag1=1;
break;
}
}
if(flag==0)
{
for(i=0;i< fsize;i++)
{
if(frm[i]==-1)
{
frm[i]=pg[j];
pf++;
flag1=1;
break;
}
}
}
if(flag1==0)
{
for(i=0;i< fsize;i++)
valid[i]=0;
for(k=j-1,l=1;l< =fsize-1;k--,l++)
{
for(i=0;i< fsize;i++)
{
if(frm[i]==pg[k])
valid[i]=1;
}
}
for(i=0;i< fsize;i++)
{
if(valid[i]==0)
index=i;
}
frm[index]=pg[j];
pf++;
}
printf("\n %d |",pg[j]);
display();
}
printf("\n--------------------------------------");
printf("\n total page fault:%d",pf);
getch();
}
void display()
{
int i;
for(i=0;i< fsize;i++)
printf("\t %d",frm[i]);
}
OUTPUT
Enter frame size:3
Enter number of pages:12
Enter page[1]:1
Enter page[2]:2
Enter page[3]:3
Enter page[4]:4
Enter page[5]:1
Enter page[6]:2
Enter page[7]:5
Enter page[8]:1
Enter page[9]:2
Enter page[10]:3
Enter page[11]:4
Enter page[12]:5
page | Frame content
--------------------------------------
1 | 1 -1 -1
2 | 1 2 -1
3 | 1 2 3
4 | 4 2 3
1 | 4 1 3
2 | 4 1 2
5 | 5 1 2
1 | 5 1 2
2 | 5 1 2
3 | 3 1 2
4 | 3 4 2
5 | 3 4 5
--------------------------------------
total page fault:10
#include< conio.h>
int fsize;
int frm[15];
void display();
void main()
{
int pg[100],valid[15],nPage,i,j,k,l,index,pf=0,temp,flag=0,flag1=0;
clrscr();
printf("\n Enter frame size:");
scanf("%d",&fsize);
printf("\n Enter number of pages:");
scanf("%d",&nPage);
for(i=0;i< nPage;i++)
{
printf("\n Enter page[%d]:",i+1);
scanf("%d",&pg[i]);
}
for(i=0;i< fsize;i++)
frm[i]=-1;
printf("\n page | \t Frame content ");
printf("\n--------------------------------------");
for(j=0;j< nPage;j++)
{
flag=0;
flag1=0;
for(i=0;i< fsize;i++)
{
if(frm[i]==pg[j])
{
flag=1;
flag1=1;
break;
}
}
if(flag==0)
{
for(i=0;i< fsize;i++)
{
if(frm[i]==-1)
{
frm[i]=pg[j];
pf++;
flag1=1;
break;
}
}
}
if(flag1==0)
{
for(i=0;i< fsize;i++)
valid[i]=0;
for(k=j-1,l=1;l< =fsize-1;k--,l++)
{
for(i=0;i< fsize;i++)
{
if(frm[i]==pg[k])
valid[i]=1;
}
}
for(i=0;i< fsize;i++)
{
if(valid[i]==0)
index=i;
}
frm[index]=pg[j];
pf++;
}
printf("\n %d |",pg[j]);
display();
}
printf("\n--------------------------------------");
printf("\n total page fault:%d",pf);
getch();
}
void display()
{
int i;
for(i=0;i< fsize;i++)
printf("\t %d",frm[i]);
}
OUTPUT
Enter frame size:3
Enter number of pages:12
Enter page[1]:1
Enter page[2]:2
Enter page[3]:3
Enter page[4]:4
Enter page[5]:1
Enter page[6]:2
Enter page[7]:5
Enter page[8]:1
Enter page[9]:2
Enter page[10]:3
Enter page[11]:4
Enter page[12]:5
page | Frame content
--------------------------------------
1 | 1 -1 -1
2 | 1 2 -1
3 | 1 2 3
4 | 4 2 3
1 | 4 1 3
2 | 4 1 2
5 | 5 1 2
1 | 5 1 2
2 | 5 1 2
3 | 3 1 2
4 | 3 4 2
5 | 3 4 5
--------------------------------------
total page fault:10