Page Replacement
Page Replacement
h>
#include <stdlib.h>
int page_frame[FRAME_SIZE];
for(int i=0;i<FRAME_SIZE;i++){
page_frame[i]=-1;
int page_faults = 0;
int pointer = 0;
printf("FIFO Algorithm:\n");
int hit = 0;
if (page_frame[j] == page) {
hit = 1;
break;
if (!hit) {
page_faults++;
page_frame[pointer] = page;
printf("\n");
}
int page_frame[FRAME_SIZE];
for(int i=0;i<FRAME_SIZE;i++){
page_frame[i]=-1;
int page_faults = 0;
int time_stamp[FRAME_SIZE];
for(int i=0;i<FRAME_SIZE;i++){
time_stamp[i]=-1;
printf("LRU Algorithm:\n");
int hit = 0;
int lru_page = 0;
if (page_frame[j] == page) {
hit = 1;
time_stamp[j] = i;
break;
if (page_frame[j] == -1) {
page_frame[j] = page;
time_stamp[j] = i;
hit = 1;
page_faults++;
break;
lru_page = j;
if (!hit) {
page_faults++;
page_frame[lru_page] = page;
time_stamp[lru_page] = i;
printf("\n");
int page_frame[FRAME_SIZE];
for(int i=0;i<FRAME_SIZE;i++){
page_frame[i]=-1;
int page_faults = 0;
int next_empty_slot = 0;
printf("Optimal Algorithm:\n");
int hit = 0;
if (page_frame[j] == page) {
hit = 1;
break;
if (!hit) {
page_faults++;
page_frame[next_empty_slot] = page;
next_empty_slot++;
} else {
int future = 0;
if (page_frame[j] == reference_string[k]) {
future = k - i;
break;
if (future == 0) {
replace_page = j;
break;
replace_page = j;
}
page_frame[replace_page] = page;
printf("\n");
int main() {
int REF_STRING_SIZE,FRAME_SIZE=0;
scanf("%d",&REF_STRING_SIZE);
int reference_string[REF_STRING_SIZE];
scanf("%d",&FRAME_SIZE);
for(int i=0;i<REF_STRING_SIZE;i++){
//{4 , 7, 6, 1, 7, 6, 1, 2, 7, 2};
scanf("%d",&reference_string[i]);
fifo(reference_string,REF_STRING_SIZE,FRAME_SIZE);
printf("\n");
lru(reference_string,REF_STRING_SIZE,FRAME_SIZE);
printf("\n");
optimal(reference_string,REF_STRING_SIZE,FRAME_SIZE);
return 0;
}
OUTPUT: