LFU and LRU
LFU and LRU
#include <stdio.h>
#include <stdlib.h>
#define MAX_FRAMES 10
int main() {
int frames[MAX_FRAMES];
int counter[MAX_FRAMES];
int referenceString[MAX_FRAMES];
int numFrames, numReferences, numFaults = 0, numHits = 0;
if (pageFault) {
int minCounter = counter[0];
int index = 0;
frames[index] = currentPage;
counter[index] = 1;
numFaults++;
}
printf("Reference np ");
for (int j = 0; j < numFrames; j++) {
printf("%d ", frames[j]);
if (frames[j] == -1) {
printf("-1 ");
}
}
printf("-> ");
if (pageFault) {
printf("Page Fault %d = 1", currentPage);
} else {
printf("Hit %d = %d", currentPage, counter[j]);
}
printf("\n");
}
Q2:
#include <stdio.h>
#define Frame_SIZE 3
int main() {
int cache[Frame_SIZE];
int used[Frame_SIZE];
int i, j, faults = 0, hits = 0;
// If the page is not in the frame, find the least recently used page
if (!pageFound) {
int lruIndex = 0;
int minUsage = used[0];
// Replace the least recently used page with the new page
cache[lruIndex] = page;
used[lruIndex] = i + 1; // Update usage information
faults += 1;
}
return 0;
}
OUTPUT: