Lab 13
Lab 13
Enrollment: 01-135222-053
Class: BS IT (4B)
FIFO
Code
#include <stdio.h>
#include <stdbool.h>
#define FRAME_SIZE 3
if (frame[i] == page) {
return true;
return false;
printf("[");
if (frame[i] == -1) {
printf(" - ");
} else {
printf(" %d ", frame[i]);
printf("]\n");
int frame[FRAME_SIZE];
int frameIndex = 0;
int pageFaults = 0;
frame[i] = -1;
pageFaults++;
frame[frameIndex] = pages[i];
displayFrame(frame, FRAME_SIZE);
} else {
int main() {
fifo(pages, numPages);
return 0;
OUTPUT
LRU
CODE
#include <stdio.h>
#include <stdbool.h>
#define FRAME_SIZE 3
if (frame[i] == page) {
return i;
return -1;
printf("[");
if (frame[i] == -1) {
printf(" - ");
} else {
printf("]\n");
int frame[FRAME_SIZE];
int lastUsed[FRAME_SIZE];
int pageFaults = 0;
int time = 0;
frame[i] = -1;
lastUsed[i] = -1;
if (pageIndex == -1) {
pageFaults++;
int lruIndex = 0;
lruIndex = j;
}
frame[lruIndex] = pages[i];
lastUsed[lruIndex] = time;
displayFrame(frame, FRAME_SIZE);
} else {
lastUsed[pageIndex] = time;
time++;
int main() {
lru(pages, numPages);
return 0;
}
OUTPUT
#include <stdio.h>
#include <stdlib.h>
// Constants for page states
#define NOT_ACCESSED_NOT_MODIFIED 0
#define NOT_ACCESSED_MODIFIED 1
#define ACCESSED_NOT_MODIFIED 2
#define ACCESSED_MODIFIED 3
typedef struct {
int page_number;
int reference_bit; // To indicate whether the page has been referenced recently
} Page;
int i;
class[page_class]++;
if (class[i] > 0) {
candidate_index = i;
break;
while (1) {
if (page_class == candidate_index)
int main() {
Page page_table[num_pages];
page_table[i].page_number = i;
page_table[i].reference_bit = 0;
page_table[i].modified_bit = 0;
return 0;