FIFO PAGE REPLACEMENT
// FIFO PAGE REPLACEMENT
#include <stdio.h>
#include <stdlib.h>
#define FRAME_SIZE 3 #define PAGE_COUNT 10
int isPageInMemory(int page, int frames[], int
frameCount) {
for (int i = 0; i
< frameCount; i++) {
if (frames[i] ==
page) { return 1; } } return 0; }
void fifoPageReplacement(int pages[], int pageCount) {
int
frames[FRAME_SIZE]; int frameIndex = 0; int
pageFaults = 0;
for (int i = 0; i < FRAME_SIZE; i++) { frames[i] = -1; }
printf("Page
Reference:\n");
for (int i = 0; i
< pageCount; i++) { printf("%d ", pages[i]);
if
(!isPageInMemory(pages[i], frames, FRAME_SIZE)) { pageFaults++;
frames[frameIndex]
= pages[i];
frameIndex =
(frameIndex + 1) % FRAME_SIZE;
printf("->
Page Fault! Frames: [");
for (int j = 0; j
< FRAME_SIZE; j++) { if (j > 0) printf(", ");
printf("%d", frames[j]); }
printf("]\n"); }
else {
printf("(No
Page Fault)\n");
} }
printf("\nTotal Page Faults: %d\n",
pageFaults);
}
int main() {
int
pages[PAGE_COUNT] = {0, 1, 2, 1, 3, 0, 4, 0, 1, 2};
fifoPageReplacement(pages, PAGE_COUNT);
return 0; }
Comments
Post a Comment