#include <stdio.
h>
int main() {
int pages[50], frames[10];
int n, f, i, j, pageFaults = 0, next = 0, found;
printf("Enter number of pages: ");
scanf("%d", &n);
printf("Enter the page reference string:\n");
for (i = 0; i < n; i++)
scanf("%d", &pages[i]);
printf("Enter number of frames: ");
scanf("%d", &f);
// Initialize frames to empty (-1)
for (i = 0; i < f; i++)
frames[i] = -1;
printf("\nPage Replacement Process:\n");
for (i = 0; i < n; i++) {
found = 0;
// Check if page is already in frames
for (j = 0; j < f; j++) {
if (frames[j] == pages[i]) {
found = 1;
break;
}
}
// If not found, it's a page fault
if (!found) {
frames[next] = pages[i];
next = (next + 1) % f; // Move to next frame
pageFaults++;
// Print current frames
printf("Insert %d: ", pages[i]);
for (j = 0; j < f; j++)
frames[j] == -1 ? printf("- ") : printf("%d ", frames[j]);
printf("\n");
}
}
printf("\nTotal Page Faults: %d\n", pageFaults);
return 0;
}