Thursday, 1 November 2018

Optimal Page replacement Algorithm

#include <stdio.h>
int f,p,nop[100],nof[100],pf,fi,in;
void fifo_p();
int contains(int t);
int func(int l);
void print();
void print(){
int i=0;
for ( i = 0; i < f; ++i)
{
printf("%d\t",nof[i]);
}
}
int con(int n,int l[],int c){
int i=0;
for( i=0;i<c;i++){
if(l[i]==n){
return 1;
}
}
return 0;
}
int ind(int l){
int i=0;
for( i=0;i<f;i++){
if(nof[i]==nop[l]){
return i;}
}
}
int func(int l){
   int t=0,i=0;
   int lru[3]={0,0,0};
for ( i = l; i < p; ++i)
{

if(nop[i]==nof[0] && lru[0]==0){
lru[0]=i;
}
if(nop[i]==nof[1] && lru[1]==0){
lru[1]=i;}
if(nop[i]==nof[2]&&lru[2]==0){
lru[2]=i;}
}
  if(lru[0]==0)
  return 0;
   if(lru[1]==0)
  return 1;
if(lru[2]==0)
  return 2;
    if(lru[0]>lru[1] && lru[0]>lru[2])
    return 0;
    else if(lru[1]>lru[0] && lru[1]>lru[2])
    return 1;
    else
    return 2;
}
int contains(int t){
int i=0;
if(nof[0]==-1)
return 0;
for ( i = 0; i < f; ++i)
{
if(t==nof[i]){
return 1;
}
}
return 0;
}
void fifo_p(){
int i=0;
fi=0;
for (i = 0; i < p; ++i)
{
if(nof[fi]==-1){
nof[fi]=nop[i];
pf++;
fi++;

}
else if(contains(nop[i])==1){
continue;
}
else{
    printf("\n");
    fi=func(i);
    nof[fi]=nop[i];
    print();
    pf++;
   }
}
}
int main()
{
    int i=0;
pf=0;
in=0;
printf("Enter Number of Frames\n");
scanf("%d",&f);
printf("Enter Number of Pages\n");
scanf("%d",&p);
printf("Enter page Numbers\n");
for ( i = 0; i < p; ++i)
{
scanf("%d",&nop[i]);
}
for ( i = 0; i < f; ++i)
{
nof[i]=-1;
}
fifo_p();
printf("\nPage Faults Found are:%d\n",pf);
return 0;
}





No comments:

Post a Comment

FERMATS LITTLE THEOREM

import java.math.*; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) {    Sca...