Fifo,Lru,Optimal(Page Replacement)



Fifo,Lru,Optimal(Page Replacement) Source Code: #include<stdio.h> #include<stdlib.h> int fifo(int a[20]) { int b[3],i,x,k=0,c,j,pf=0,f=3,p=20; for(i=0;ic3 ? max:c3; if(max==c1) b[0]=x; else if(max==c2) b[1]=x; else if(max==c3) b[2]=x; } pf++; } for(j=0;j<f;j++) { if(b[j]==999) printf(" _"); else printf(" %d",b[j]); } printf("\n"); } return pf; } int optimal(int a[20]) { int b[3],i,x,k=0,c,j,pf=0,f=3,p=20,c1,c2,c3,k1,max; for(i=0;i<f;i++) { b[i]=999; } printf("\nPage Frames in OPTIMAL:\n"); for(i=0;i<p;i++) { x=a[i]; c=0; for(j=0;j<f;j++) { if(x==b[j]) { break; } c++; } if(c==3) { if(i<=2) { b[i]=x; } else { c1=0; c2=0; c3=0; for(k1=i+1;k1<p;k1++) { if(b[0]==a[k1]) break; c1++; } for(k1=i+1;k1<p;k1++) { if(b[1]==a[k1]) break; c2++; } for(k1=i+1;k1<p;k1++) { if(b[2]==a[k1]) break; c3++; } max= c1>c2 ? c1:c2; max= max>c3 ? max:c3; if(max==c1) b[0]=x; else if(max==c2) b[1]=x; else if(max==c3) b[2]=x; } pf++; } for(j=0;j<f;j++) { if(b[j]==999) printf(" _"); else printf(" %d",b[j]); } printf("\n"); } return pf; } void main() { int i,a[20],y,pf; a[0]=7; a[1]=0; a[2]=1; a[3]=2; a[4]=0; a[5]=3; a[6]=0; a[7]=4; a[8]=2; a[9]=3; a[10]=0; a[11]=3; a[12]=2; a[13]=1; a[14]=2; a[15]=0; a[16]=1; a[17]=7; a[18]=0; a[19]=1; pf=fifo(a); printf("\nNumber of page fault in FIFO=%d\n",pf); pf=lru(a); printf("\nNumber of page fault in LRU=%d\n",pf); pf=optimal(a); printf("\nNumber of page fault in OPTIMAL=%d\n",pf); }

Share:

0 comments