tpPage *nextPageToBeReplaced() { if(strcmp(substAlg, "lru") == 0) { return lruAlgorithm(); } else if(strcmp(substAlg, "nru") == 0) { return nruAlgorithm(); } else if(strcmp(substAlg, "seg") == 0) { return secAlgorithm(); } printf("Choose one of those page replace algorithm: LRU, NRE, SEG"); exit(1); }
int main(int argc, char *argv[]) { if(argc == REQUIRED_ARGS) { int *referenceString=NULL; referenceString = malloc(ARRAY_INIT*sizeof(int)); if(referenceString == NULL){ fprintf(stderr,"Memory not allocated\n"); exit(0); } FILE *file = fopen("./refstring.txt","r"); if(!file){ fprintf(stderr,"File could not be opened\n"); exit(0); } int currentNumber = 0; int refLength = 0; int frames = atoi(argv[1]); //Populate reference string array with file data while((fscanf(file, "%d ", ¤tNumber)) != EOF) { referenceString[refLength] = currentNumber; refLength++; } //Run LRU Algorithm to calculate page faults int pageFaults = lruAlgorithm(referenceString, refLength, frames); printf("LRU Page Faults: %d\n", pageFaults); //Garbage collection free(referenceString); } else { fprintf(stderr,"Simulation required 2 arguments.\n"); exit(0); } }