操作系统页面置换算法程序设计
操作系统页面置换算法模拟程序设计程序源代码:#include<stdio.h>#include<iostream.h>#include<time.h>#include<stdlib.h>struct aaint page;int count;aa * next;void main()time_t t; srand(unsigned(time(&t);mm;int i, n, j, ii, m, answer, ffalse, count, fangfa, temp1, min, nn, double sum;aa * head, *tail, *temp, *table, *first, *ti;cout"请输入 m 的值:"endl;cout<<"m="cin>>m;cou t 方法:2-LRU;3-0PTendl;cout"Mothed:"cin>>fangfa;ffalse = 0;answer = 0;table = new (aa);temp = table;table->page = -1;table->count = 0;head = table;for(ii=2; ii=m; ii+)table = new (aa);table->page = -1;table->count = 0;temp->next = table;temp = table;if(ii=m)table->next = NULL;tail = table;temp = head;first = head;count = 0;i = 0;while(i320)min = 400;if(count = 0)n = (rand()%320+1)%320;j = n/10; if(count = 1)n = rand()%(n+1);j = n/10; if(count = 2)j = (n+1)%320)/10; if(count = 3) j=(rand()%(320-n-2)+n+2)/10;table = head;temp = table;answer = 0;min = 400; if(fangfa != 1)table = head; while(table != NULL)if(table->count < min) temp = table; min = table->count; table = table->next; if(temp->page != -1)+ffalse; temp->page = j;temp->count = 1;table = head; if(i%320) = 0) while(table != NULL)if(table->page != -1) table->count =1;table = table->next;if(fangfa = 4) | (fangfa = 3) while(table != NULL) if(table->page = j)answer = 1; +(table->count);table = table->next;if(answer != 1) table = head; while(table != NULL) if(table->count < min)temp = table;min= table->count;table = table->next;if(temp ->page != -1)+ffalse; temp->page = j;table = head; while(table)table->count = 1; table = table->next;else temp->page = j;+(temp->count); if(fangfa = 2) while(table != NULL) && (fangfa = 2) if(table->page = j) answer = 1;temp = table;table = table->next;if(fangfa = 2) && (answer = 1) temp1 = temp->page;while(temp->next != NULL) temp->page = temp->next->page;temp = temp->next; tail->page = temp1; if(answer != 1) && (fangfa =2) if(first->page != -1)ffalse+; first->page = j;temp = head; while(temp->next != NULL) temp->page = temp->next->page;temp = temp->next; tail->page = j;table = head;while(table != NULL) && (fangfa = 1) if(table->page = j) answer = 1;table = table->next;if(answer != 1) && (fangfa = 1) if(first-page != -1)ffalse+;first-page = j; if(first-next != NULL) first 二 first-next;elsefirst 二 head;+i; +count;sum = 1.0-ffalse/320.0; if(fangfa = 2)cout"LRU:"sum"" if(fangfa = 3)cout"0TP:"sum""coutendl;for(ti 二 head; ti!二 NULL; ti 二 ti-next) coutti-page""coutendl;程序运行结果:的文件C+意-Jnx幘输入m的值=m=2厉袪二 2-LBU;3-OPTrlothed = SIiRU =0-003125Bl31Ppess 日n野 1日野 to cont inueH1J