Professional Documents
Culture Documents
Page Replacement Algorithms
Page Replacement Algorithms
FIFO: #include<stdio.h> #include<conio.h> int q[10],n,frame=0; int search(int ); void qinsert(int a[],int ,int ); void display(int , int a[],int ); void main() { int i,j,pn,np=0,pf=0; char ch; clrscr(); printf("Enter number of frames:"); scanf("%d",&n); for(i=0;i<n;i++) q[i]=-1; printf("Enter the sequence of pages:\n"); do {
printf("\n Enter page number:"); scanf("%d",&pn); np++; j=search(pn); if(j==-1) { qinsert(q,pn,frame); pf++;
if(frame==n-1) frame=0; else frame++; } display(pn,q,pf); printf("\nDo you want to enter another page?"); ch=getch();
printf("%c",ch);
}while(ch=='y'); getch(); }
return p; }
q[frame]=pn; }
void display(int pn,int q[],int pf) { int i=0; printf("\npn=%d",pn); printf(" pages in memory:"); for(i=0;i<n;i++) printf("%d ",q[i]); printf(" page fault=%d\n",pf);
LRU:
#include<stdio.h> #include<conio.h> #define MAX 10 int q[MAX],n,frame=0; int search(int ); void page_insert(int a[],int ,int ); void display(int ,int a[],int ); void main()
{ int i,j,pn,np=0,pf=0,flag=0,k; int count=0,counter[MAX],small,pos; char ch; clrscr(); printf("Enter number of frames:"); scanf("%d",&n);
page_insert(q,pn,i); counter[i]=count;
small=counter[0];
else
counter[j]=count;
printf("%c",ch);
}while(ch=='y'); getch(); }
int search(int pn) { int i=0,p=-1; for(i=0;i<n;i++) { if(q[i]==pn) { p=i; return p; } } return p; }
q[small]=pn; }
void display(int pn,int q[],int pf) { int i=0; printf("\npn=%d",pn); printf(" pages in memory:"); for(i=0;i<n;i++) printf("%d ",q[i]); printf(" page fault=%d\n",pf);