欢迎来到天天文库
浏览记录
ID:55704543
大小:83.50 KB
页数:7页
时间:2020-05-25
《实验四 分页式存储管理.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验四分页式存储管理自动化1203张千伟3一、实验目的1.熟悉分页式存储管理2.掌握最久未使用算法以及FIFO算法二、实验内容1.实验代码#include#include#include#include#definebsize4//物理块大小#definepsize16//进程大小typedefstructpage{intnum;/*记录页面号*/inttime;/*记录调入内存时间*/}Page;/*页面逻辑结构,结构为方便算法实现设计*/Pageb[bsize];/*内存单元数*
2、/intc[bsize][psize];/*暂保存内存当前的状态:缓冲区*/intqueue[100];/*记录调入队列*/intK;/*调入队列计数变量*/intphb[bsize]={0};//物理块标号intpro[psize]={0};//进程序列号intflag[bsize]={0};//进程等待次数(存放最久未被使用的进程标志)inti=0,j=0,k=0;//i表示进程序列号,j表示物理块号intm=-1,n=-1;//物理块空闲和进程是否相同判断标志intmax=-1,maxflag=0;//标记替换物理块进程下标intcount=0;//统
3、计页面缺页次数//**************************************************************//随机产生序列号函数int*build(){printf("随机产生一个进程序列号为:");inti=0;for(i=0;i4、0){m=j;returnm;break;}}return-1;}intsearchpro()//查找相同进程{for(j=0;j5、j++){if(flag[j]>maxflag){maxflag=flag[j];max=j;}}if(n==-1)//不存在相同进程{if(m!=-1)//存在空闲物理块{phb[m]=pro[i];//进程号填入该空闲物理块count++;flag[m]=0;for(j=0;j<=m;j++){flag[j]++;}m=-1;}else//不存在空闲物理块{phb[max]=pro[i];flag[max]=0;for(j=0;j6、{phb[n]=pro[i];for(j=0;j7、for(j=0;jmax){max=b[i].time;tag=i;}}returntag;}intEquation(intfold,Page*b)/*判断页面是否已在内存中*/{inti;for(i=0;i8、}/*LRU核心部分*/voidLruu(intfo
4、0){m=j;returnm;break;}}return-1;}intsearchpro()//查找相同进程{for(j=0;j5、j++){if(flag[j]>maxflag){maxflag=flag[j];max=j;}}if(n==-1)//不存在相同进程{if(m!=-1)//存在空闲物理块{phb[m]=pro[i];//进程号填入该空闲物理块count++;flag[m]=0;for(j=0;j<=m;j++){flag[j]++;}m=-1;}else//不存在空闲物理块{phb[max]=pro[i];flag[max]=0;for(j=0;j6、{phb[n]=pro[i];for(j=0;j7、for(j=0;jmax){max=b[i].time;tag=i;}}returntag;}intEquation(intfold,Page*b)/*判断页面是否已在内存中*/{inti;for(i=0;i8、}/*LRU核心部分*/voidLruu(intfo
5、j++){if(flag[j]>maxflag){maxflag=flag[j];max=j;}}if(n==-1)//不存在相同进程{if(m!=-1)//存在空闲物理块{phb[m]=pro[i];//进程号填入该空闲物理块count++;flag[m]=0;for(j=0;j<=m;j++){flag[j]++;}m=-1;}else//不存在空闲物理块{phb[max]=pro[i];flag[max]=0;for(j=0;j6、{phb[n]=pro[i];for(j=0;j7、for(j=0;jmax){max=b[i].time;tag=i;}}returntag;}intEquation(intfold,Page*b)/*判断页面是否已在内存中*/{inti;for(i=0;i8、}/*LRU核心部分*/voidLruu(intfo
6、{phb[n]=pro[i];for(j=0;j7、for(j=0;jmax){max=b[i].time;tag=i;}}returntag;}intEquation(intfold,Page*b)/*判断页面是否已在内存中*/{inti;for(i=0;i8、}/*LRU核心部分*/voidLruu(intfo
7、for(j=0;jmax){max=b[i].time;tag=i;}}returntag;}intEquation(intfold,Page*b)/*判断页面是否已在内存中*/{inti;for(i=0;i8、}/*LRU核心部分*/voidLruu(intfo
8、}/*LRU核心部分*/voidLruu(intfo
此文档下载收益归作者所有