0% found this document useful (0 votes)
5 views

program7

The document provides a C program that simulates two page replacement algorithms: FIFO and LRU. It includes code snippets for both algorithms, demonstrating how they handle page references and track page faults. The output shows the number of page faults for a given reference string and frame size.

Uploaded by

Shiv Km
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

program7

The document provides a C program that simulates two page replacement algorithms: FIFO and LRU. It includes code snippets for both algorithms, demonstrating how they handle page references and track page faults. The output shows the number of page faults for a given reference string and frame size.

Uploaded by

Shiv Km
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

PROGRAM-7

Develop a C program to simulate page replacement algorithms:


a) FIFO

#include<stdio.h>
int main()
{
int i,j,n,a[50],frame[10],no,k,avail,count=0;
printf("\n ENTER THE NUMBER OF PAGES:\n");
scanf("%d",&n);
printf("\n ENTER THE PAGE NUMBER :\n");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("\n ENTER THE NUMBER OF FRAMES :");
scanf("%d",&no);
for(i=0;i<no;i++)
frame[i]= -1;
j=0;
printf("\tref string\t page frames\n");
for(i=1;i<=n;i++)
{
printf("%d\t\t",a[i]);
avail=0;
for(k=0;k<no;k++)
if(frame[k]==a[i])
avail=1;
if (avail==0)
{
frame[j]=a[i];
j=(j+1)%no;
count++;
for(k=0;k<no;k++)
printf("%d\t",frame[k]);
}
printf("\n");
}
printf("Page Fault Is %d",count);
return 0;
}

OUTPUT
ENTER THE NUMBER OF PAGES:
20

ENTER THE PAGE NUMBER:


7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
ENTER THE NUMBER OF FRAMES :3
ref string page frames
7 7 -1 -1
0 7 0 -1
1 7 0 1
2 2 0 1
0
3 2 3 1
0 2 3 0
4 4 3 0
2 4 2 0
3 4 2 3
0 0 2 3
3
2
1 0 1 3
2 0 1 2
0
1
7 7 1 2
0 7 0 2
1 7 0 1
Page Fault Is 15
b) LRU

#include<stdio.h>
int i,j,nof,nor,flag=0,ref[50],frm[50],pf=0,victim=-1;
int recent[10],lrucal[50],count=0;
int lruvictim();
void main()
{
printf("\n\t\t\t LRU PAGE REPLACEMENT ALGORITHM");
printf("\n Enter no.of Frames....");
scanf("%d",&nof);
printf(" Enter no.of reference string..");
scanf("%d",&nor);
printf("\n Enter reference string..");
for(i=0;i<nor;i++)
scanf("%d",&ref[i]);
printf("\n\n\t\t LRU PAGE REPLACEMENT ALGORITHM ");
printf("\n\t The given reference string:");
printf("\n………………………………..");
for(i=0;i<nor;i++)
printf("%4d",ref[i]);
for(i=1;i<=nof;i++)
{
frm[i]=-1;
lrucal[i]=0;
} for(i=0;i<10;i++)
recent[i]=0;
printf("\n");
for(i=0;i<nor;i++)
{
flag=0;

printf("\n\t Reference NO %d->\t",ref[i]);

for(j=0;j<nof;j++)
{
if(frm[j]==ref[i])
{
flag=1;
break;
}
}
if(flag==0)
{
count++;
if(count<=nof)
victim++;
else
victim=lruvictim();
pf++;
frm[victim]=ref[i];
for(j=0;j<nof;j++)
printf("%4d",frm[j]);
}
recent[ref[i]]=i;
}
printf("\n\n\t No.of page faults...%d",pf);
}
int lruvictim()
{
int i,j,temp1,temp2;
for(i=0;i<nof;i++)
{
temp1=frm[i];
lrucal[i]=recent[temp1];
}
temp2=lrucal[0];
for(j=1;j<nof;j++)
{
if(temp2>lrucal[j])
temp2=lrucal[j];
}
for(i=0;i<nof;i++)
if(ref[temp2]==frm[i])
return i;
return 0;
}
OUTPUT

LRU PAGE REPLACEMENT ALGORITHM


Enter no.of Frames....3
Enter no.of reference string..20

Enter reference string.


7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1

LRU PAGE REPLACEMENT ALGORITHM


The given reference string:
……………………………….. 7 0 1 2 0 3 0 4 2 3 0 3
2 1 2 0 1 7 0 1

Reference NO 7-> 7 -1 -1
Reference NO 0-> 7 0 -1
Reference NO 1-> 7 0 1
Reference NO 2-> 2 0 1
Reference NO 0->
Reference NO 3-> 2 0 3
Reference NO 0->
Reference NO 4-> 4 0 3
Reference NO 2-> 4 0 2
Reference NO 3-> 4 3 2
Reference NO 0-> 0 3 2
Reference NO 3->
Reference NO 2->
Reference NO 1-> 1 3 2
Reference NO 2->
Reference NO 0-> 1 0 2
Reference NO 1->
Reference NO 7-> 1 0 7
Reference NO 0->
Reference NO 1->

No.of page faults...12

You might also like