FIFO Page Replacement
Simulate the FIFO page replacement algorithm and calculate number of page faults for a give page reference string and a fixed number of memory frames.
Program
#include <stdio.h>
int main() {
int frames, pages[30], frame[10], count = 0, pageFaults = 0;
int n, i, j, flag, k;
printf("Enter number of frames: ");
scanf("%d", &frames);
printf("Enter number of pages: ");
scanf("%d", &n);
printf("Enter page reference string: ");
for (i = 0; i < n; i++)
scanf("%d", &pages[i]);
for (i = 0; i < frames; i++)
frame[i] = -1;
for (i = 0; i < n; i++) {
flag = 0;
for (j = 0; j < frames; j++) {
if (frame[j] == pages[i]) {
flag = 1;
break;
}
}
if (flag == 0) {
frame[count] = pages[i];
count = (count + 1) % frames;
pageFaults++;
}
printf("Page %d -> ", pages[i]);
for (k = 0; k < frames; k++)
if (frame[k] != -1)
printf("%d ", frame[k]);
else
printf("- ");
printf("\n");
}
printf("Total Page Faults = %d\n", pageFaults);
return 0;
}