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

Popular posts from this blog

FCFS Static code