最佳置换算法(C语言)——大三操作系统实验-创新互联-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

最佳置换算法(C语言)——大三操作系统实验-创新互联

目录

创新互联是一家专注于网站建设、做网站与策划设计,汝州网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:汝州等地区。汝州做网站价格咨询:028-86922220

1.算法原理

2.实验要求

3.算法流程图

4.代码分析

1.max函数的构建

2.found函数的构建

3.IN函数的构建

4.print函数的构建

5.主函数的构建

6.总代码

5.测试结果及其分析


1.算法原理

基本思想是所选择的被淘汰页面,将是以后永不使用的,或是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,可保证获得最低的缺页率。

2.实验要求

在某请求分页管理系统中,作业执行时依次访问如下页面:1,4,3,1,2,5,1,4,2,1,4,5,分配给该作业的主存块数为3

3.算法流程图

4.代码分析 1.max函数的构建
int max(int c[3]){//找出内存三个页面距离下一次使用时间最长的页面索引 
	int temp=c[0],index=0;
	for(int i=1;i<3;i++){
		if(c[i]>temp){
			temp=c[i];
			index=i;
		}
	}
	return index;
}

输入为数组C,C是用来存储内存三个页面对应的距离从b[0]开始下一次使用的时间

通过for循环找出大值,将其索引值返回

2.found函数的构建
void found(int a[3],int b[100],int start,int n,int c[3]){//寻找页面内三个进程距离下一次使用的时间 
	for(int i=0;i<3;i++){
		for(int j=start+1;j

输入为数组a(处于内存中的三个页面),数组b(即将要进入内存的页面总集),数组c,start(数组b中要进入内存的第start个),n(页面总数)

从start+1开始找与内存三个页面的时间,即间距,如果在后面都找不到,设为999

3.IN函数的构建
int IN(int a[3],int temp){//判断需要顶替的页面是否在内部  
	int flag=0;
	for(int i=0;i<3;i++){
		if(a[i]==temp){
			flag=1;
			break;
		}
	}
	return flag;
}

IN函数输入为内存的三个页面以及即将进入内存的页面,是为了判断内存页面中是否和它重复

如果重复,则flag置为1,否则不变,还是0,最后返回flag

4.print函数的构建
void print(int a[3],int b[100],int n,int start){
	int c[3]={0},m;
	if(IN(a,b[start])==0){//如果不在内部,则需要更改 
		found(a,b,start,n,c);
		m=max(c);
		a[m]=b[start];
	}
	cout<<"现在进入第"<

输入为数组a(处于内存中的三个页面),数组b(即将要进入内存的页面总集),start(数组b中要进入内存的第start个),n(页面总数)

定义数组c,用来储存内存三个页面对应的距离下一次使用的时间,其实是从b中0开始的索引值

如果即将进入内存的页面在内存中,则无需更改

否则需要调用found来找到需要替换的页面,并更改

最后输出

5.主函数的构建
int main(){
	int a[3],b[100],n;
	for(int i=0;i<3;i++){
		cout<<"请输入第"<>a[i];
	}
	cout<<"现在系统内的三个页面为:"<>n;
	for(int i=0;i>b[i];
	}//需要所有进程输入完才能判断谁用的时间久 
	for(int i=0;i
6.总代码
#includeusing namespace std;
int max(int c[3]){//找出内存三个页面距离下一次使用时间最长的页面索引 
	int temp=c[0],index=0;
	for(int i=1;i<3;i++){
		if(c[i]>temp){
			temp=c[i];
			index=i;
		}
	}
	return index;
}
void found(int a[3],int b[100],int start,int n,int c[3]){//寻找页面内三个进程距离下一次使用的时间 
	for(int i=0;i<3;i++){
		for(int j=start+1;ja[i];
	}
	cout<<"现在系统内的三个页面为:"<>n;
	for(int i=0;i>b[i];
	}//需要所有进程输入完才能判断谁用的时间久 
	for(int i=0;i
5.测试结果及其分析

测试数据就用实验要求给出的

测试结果分析

起始输入125142145
a[0]11(2)1(2)111(6)111(999)5
a[1]44(3)4(3)444(7)444(999)4
a[2]33 (999)2(4)555(8)222(999)2

最近最久未使用页面置换算法(C语言)——大三操作系统实验_西瓜妹妹的唯一男朋友的博客-博客

​​​​​​​先进先出算法(c语言)——大三操作系统实验_西瓜妹妹的唯一男朋友的博客-博客 

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:最佳置换算法(C语言)——大三操作系统实验-创新互联
标题来源:http://kswsj.cn/article/dhjseh.html