OS LAB A3 Kiran
OS LAB A3 Kiran
struct node
int pno,freq;
}frames[20];
int n;
int fno;
for(fno=0;fno<n;fno++)
if(frames[fno].pno==pno)
return fno;
return -1;
int get_free_frame()
{ int fno;
if (frames[fno].pno==-1)
return(fno);
return(-1);
}
int get_mfu_frame()
int fno;
int selfno=0;
if(frames[fno].freq>frames[selfno].freq)
selfno=fno;
return selfno;
void main()
int p_request[]={5,8,10,14,10,9,5,10,8,5,1,10,9,12,10};
int size=15;
int page_falts=0,i,j,fno;
//initialize frames
{ frames[i].pno=-1;
frames[i].freq=0;
printf("\n---------------------------------------------------");
for(i=0;i<size;i++)
{
j=page_found(p_request[i]);
if(j==-1)
j=get_free_frame();
if (j==-1)
j=get_mfu_frame();
page_falts++;
frames[j].pno=p_request[i];
frames[j].freq=1;
printf("\n%4d\t ",p_request[i]);
printf("%4d:%2d",frames[fno].pno,frames[fno].freq);
printf(" : YES");
else
printf("\n%4d\t ",p_request[i]);
frames[j].freq++;
printf("%4d:%2d",frames[fno].pno,frames[fno].freq);
printf(" : NO");
printf("\n-------------------------------------------------------");
printf("\n PageFaults=%d",page_falts);
OUTPUT:
Question # 2
C code to implement Optimal Page Replacement Algorithm.
CODE:
#include <stdio.h>
#include<sys/types.h>
#include<unistd.h>
int main()
int no_of_frames;
int pages[30];
int temp[10];
int flag1;
int flag2;
int flag3;
int i;
int j;
int k;
int pos;
int max;
int hit= 0;
int faults = 0;
scanf("%d", &no_of_frames);
printf("Enter number of pages: ");
scanf("%d", &no_of_pages);
scanf("%d", &pages[i]);
frames[i] = -1;
flag1 = flag2 = 0;
if(frames[j] == pages[i])
flag1 = flag2 = 1;
hit++;
break;
if(flag1 == 0)
{
for(j = 0; j < no_of_frames; ++j)
if(frames[j] == -1)
faults++;
frames[j] = pages[i];
flag2 = 1;
break;
if(flag2 == 0)
flag3 =0;
temp[j] = -1;
if(frames[j] == pages[k])
temp[j] = k;
break;
}
if(temp[j] == -1)
pos = j;
flag3 = 1;
break;
if(flag3 ==0)
max = temp[0];
pos = 0;
max = temp[j];
pos = j;
}
}
frames[pos] = pages[i];
faults++;
printf("\n");
printf("%d\t", frames[j]);
return 0;
}
OUTPUT: