コード例 #1
0
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);
}
コード例 #2
0
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 ", &currentNumber)) != 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);
    }
}