Sprno:9223
12A TO IMPLEMENT THE VARIOUS PAGE REPLACEMENT ALGORITHM-
LAST IN FIRST OUT
PROGRAM:
#include <stdio.h>
int main() {
int frames, pages, i, j, k, faults = 0;
int found, top = 0;
printf("Enter number of frames: ");
scanf("%d", &frames);
printf("Enter number of pages: ");
scanf("%d", &pages);
int pageSeq[pages], frame[frames];
printf("Enter page reference string: ");
for (i = 0; i < pages; i++)
scanf("%d", &pageSeq[i]);
// Initialize frames
for (i = 0; i < frames; i++)
frame[i] = -1;
printf("\nPage\tFrames\n");
for (i = 0; i < pages; i++) {
found = 0;
// Check if page is already in a frame
for (j = 0; j < frames; j++) {
if (frame[j] == pageSeq[i]) {
found = 1;
break;
}
}
if (!found) {
// Replace the most recently added page (LIFO strategy)
Sprno:9223
top = (top == 0) ? frames - 1 : top - 1;
frame[top] = pageSeq[i];
faults++;
printf("%d\t", pageSeq[i]);
for (k = 0; k < frames; k++) {
if (frame[k] == -1)
printf("- ");
else
printf("%d ", frame[k]);
}
printf("\n");
} else {
printf("%d\tNo page fault\n", pageSeq[i]);
}
}
printf("\nTotal Page Faults = %d\n", faults);
return 0;
}
OUTPUT:
Enter number of frames: 3
Enter number of pages: 7
Enter page reference string: 1 3 0 3 5 6 3
Page Frames
1 --1
3 -31
0 031
3 No page fault
5 531
6 631
3 No page fault Total Page Faults = 5
Sprno:9223