




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OS实验五(软件0967020050)2010.11.27OS实验五(软件)今日DATE\@"M/d/yyyy"1/18/2011页面置换算法的实现实验要求请用LRU和FIFO模拟教材P150页面序列,并打印出置换页面。作业序列能够动态输入内存物理块数可以动态的修改,且初始状态均为空总结收获体会及对该题解的改进意见和见解 (一)分析题意得模型(一)分析题意得模型利用数组相关知识LRU:(最近最久未使用置换算法)数组A[]数组A[],记录页面顺序70120304230321201701内存块7772
2
4440
1
1
1
000
0
0033
3
0
0
11
3
3222
2
2
7
缺页否√√√√
√
√√√√
√
√
√
M=3时:123423453数组C[],记录页面最近出现的位置数组C[],记录页面最近出现的位置701201201数组数组B[],记录内存块的页面每次找C[]值最小的页面置换FIFO(先进先出页面置换算法)与LRU相似,不过,不必设数组C来记录经历的时间,只需循环地置换第1个到第m个页面(二)写主要算法(二)写主要算法思路(三)调试运行(多种情况都要运行)(三)调试运行(多种情况都要运行)详见源程序及注释分类(四(四)体会及不足1.先找到问题思路,然后运用所学知识,用数组实现就1.先找到问题思路,然后运用所学知识,用数组实现就较为简单,问题不大。2.但同时也要注意如何使运行结果的界面更为美观。我也不知为什么,老是前两个”是否缺页”的Y与后面的Y对不齐(四)体会及不足LUR源代码:#include<stdio.h>voidmain(){ intm,i=0,j=0,j0,min,n=0,s,page,k=0,A[100],B[100],C[100],count=0; printf("请输入页框(物理块)数:"); scanf("%d",&m); printf("请输入页面顺序(以-999结束):\n"); scanf("%d",&page); while(page!=-999) { A[i]=page; i++;n++; scanf("%d",&page); } printf("\n最近最久未被使用(LRU)页面置换算法\n"); printf("\t页面顺序\t内存块\t\t是否缺页(Y/N)\n"); i=0; while(i<n) { printf("\t%d\t\t",A[i]); /*一.若内存块B[]未满,直接将页面A[]装入,C[]为所对应B[]的出现位置*/ if(i<m) { B[j]=A[i];i++; C[j]=i; j++; for(j0=0;j0<j;j0++) printf("%3d",B[j0]); printf("\t\tY\n"); count++; } /*二.若内存块B已满,分两种情况*/ else { for(j=0;j<m;j++) { if(A[i]!=B[j])k++; else break; } //1.原内存块B无此页面,找C值最小(即最近最久未使用),换出页面A// if(k==m) { min=C[0]; s=0; for(j0=0;j0<m;j0++) { if(C[j0]<min) { min=C[j0]; s=j0; } } B[s]=A[i];i++; C[s]=i; j++; for(j0=0;j0<m;j0++) printf("%3d",B[j0]); printf("\t\tY\n"); count++; } //2.原内存块B有此页面,改变B所对应的C所出现的位置,再读下一页面// else { i++;C[k]=i; printf("\n"); } k=0; } } printf("\n缺页中断数为%d总页数为%d缺页率为%.2f\n\n",count,i,(float)count/i);}FIFO源代码:#include<stdio.h>voidmain(){ intm,i=0,j=0,page,n=0,k=0,j0,j1=0,A[100],B[100],count=0; printf("请输入页框(物理块)数:"); scanf("%d",&m); printf("请输入页面顺序(以-999结束):\n"); scanf("%d",&page); while(page!=-999) { A[i]=page; i++;n++; scanf("%d",&page); } printf("\n先进先出(FIFO)页面置换算法\n"); printf("\t页面顺序\t内存块\t\t是否缺页(Y/N)\n"); i=0; while(i<n) { printf("\t%d\t\t",A[i]); /*一.若内存块B[]未满,直接将页面A[]装入*/ if(i<m) { B[j]=A[i];j++; for(j0=0;j0<j;j0++) printf("%3d",B[j0]); printf("\t\tY\n"); count++;i++; } /*二.若内存块B已满,分两种情况*/ else { for(j=0;j<m;j++) { if(A[i]!=B[j])k++; } //1.原内存块B无此页面,依次置换出页面A// if(k==m) { B[j1]=A[i];i++;j1++; for(j0=0;j0<m;j0++) printf("%3d",B[j0]); printf("\t\tY\n"); count++; if(j1==m)j1=0; }
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玩具企业的客户服务与售后支持体系考核试卷
- 智能手持设备稳定性测试考核试卷
- 幼儿园中班课程故事:特工超市
- 小兔子班本课程
- 体育健康教育禁毒
- 2025医疗机构数据库维护服务合同
- 2025园林绿化养护管理合同书
- 义务教育学校工作汇报
- 2025年的食堂管理合同范本
- 2025年合同续签无需试用期
- 课件:《科学社会主义概论(第二版)》第四章
- 2025年上半年江苏省苏州市总工会招录社会化工会工作者18人易考易错模拟试题(共500题)试卷后附参考答案
- 工厂废料运输清理协议
- 2025超市出兑合同书模板
- 《基于宁德时代的财务报表的公司财务分析》4100字(论文)
- 湖南省长沙市雅礼实验中学-主题班会-《阳光心态美丽青春》【课件】
- 提高单病种上报率
- The+Person+I+respect+高考应用文写作+导学案 高三上学期英语一轮复习专项
- 2025年中考考前物理押题密卷(河北卷)(考试版A4)
- 临床护理实践指南2024版
- 人教版七年级下册数学第七章平面直角坐标系-测试题及答案
评论
0/150
提交评论