Least Recently Used Paging Algorithm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include "stdio.h" #include "conio.h" int fr[3]; void main() { void display(); int p[20]={1,0,7,1,0,2,1,2,3,0,3,2,4,0,3,0,2,1,0,7},i,j,fs[3]; int index,k,l,flag1=0,flag2=0,pf=0,frsize=3; clrscr(); for(i=0;i<3;i++) { fr[i]=-1; } for(j=0;j<20;j++) { flag1=0,flag2=0; for(i=0;i<3;i++) { if(fr[i]==p[j]) { flag1=1; flag2=1; break; } } if(flag1==0) { for(i=0;i<3;i++) { if(fr[i]==-1) { fr[i]=p[j]; flag2=1; break; } } } if(flag2==0) { for(i=0;i<3;i++) fs[i]=0; for(k=j-1,l=1;l<=frsize-1;l++,k--) { for(i=0;i<3;i++) { if(fr[i]==p[k]) fs[i]=1; } } for(i=0;i<3;i++) { if(fs[i]==0) index=i; } fr[index]=p[j]; pf++; } display(); } printf("\n no of page faults :%d",pf); getch(); } void display() { int i; printf("\n"); for(i=0;i<3;i++) printf("\t%d",fr[i]); } |
So…comments?