#include <stdio.h>
int f,p,nop[100],nof[100],pf,fi,in,ti[100];
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[50];
for (i=0;i<p;i++){
lru[i]=-1;
}
i=0;
do{
if(con(nop[l],lru,i)){
l--;
}
else{
lru[i]=nop[l];
i++;
if(i==3)
break;
l--;
}
} while(l>0);
return ind(l);
}
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-1);
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;
}
int f,p,nop[100],nof[100],pf,fi,in,ti[100];
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[50];
for (i=0;i<p;i++){
lru[i]=-1;
}
i=0;
do{
if(con(nop[l],lru,i)){
l--;
}
else{
lru[i]=nop[l];
i++;
if(i==3)
break;
l--;
}
} while(l>0);
return ind(l);
}
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-1);
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