New York University
CSCI-SHU MISC
#include #include #include "oslabs.h" int process_page_access_fifo(struct PTE page_table[TABLEMAX],int *table_cnt, int page_number, int frame_pool[POOLMAX],int *frame_cnt, int current_timestamp){ int replce_PN = -1; int replce_FN,replce_AT; if (page_table[page_number].is_valid == 1){ page_table[page_number].last_access_timestamp = current_tim
...[Show More]
#include #include #include "oslabs.h" int process_page_access_fifo(struct PTE page_table[TABLEMAX],int *table_cnt, int page_number, int frame_pool[POOLMAX],int *frame_cnt, int current_timestamp){ int replce_PN = -1; int replce_FN,replce_AT; if (page_table[page_number].is_valid == 1){ page_table[page_number].last_access_timestamp = current_timestamp; page_table[page_number].reference_count += 1; return page_table[page_number].frame_number; } else if (*frame_cnt > 0){ } else { for (int i = 0; i < *table_cnt; ++i){ if(page_table[i].is_valid == 1 ){ if(replce_PN < 0){ replce_PN = i; replce_FN = page_table[i].frame_number; replce_AT = page_table[i].arrival_timestamp; }else{ if(page_table[i].arrival_timestamp < page_table[replce_PN].arrival_timestamp){ replce_PN = i; replce_FN = page_table[i].frame_number; replce_AT = page_table[i].arrival_timestamp; } } } } page_table[page_number].is_valid = 1; page_table[page_number].frame_number = replce_FN; page_table[page_number].arrival_timestamp = current_timestamp; page_table[page_number].last_access_timestamp = current_timestamp; page_table[page_numb
[Show Less]