欢迎来到天天文库
浏览记录
ID:50391543
大小:77.50 KB
页数:6页
时间:2020-03-05
《实验报告三内存页面置换算法的设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验报告三——内存页面置换算法的设计姓名:丛菲学号:20100830205班级:信息安全二班一、实习内容•实现最近最久未使用(LRU)置换算法二、实习目的•LINUX中,为了提高内存利用率,提供了内外存进程对换机制,内存空间的分配和回收均以页为单位进行,一个进程只需将其一部分调入内存便可运行,还支持请求调页的存储管理方式。•本实习要求学生通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。三、实习题目1.最近最久未使用(LRU)置换算法原理就是:当需要淘汰某页面时,选择当前一段时间内最久未使用过的页先淘汰,即淘汰距当前最远的上次
2、使用的页。•例如:分配给该进程的页块数为3,一个20位长的页面访问序列为:12560,36536,56042,70435,则缺页次数和缺页率按下图给出:2.假定分配给该进程的页块数为3,页面访问序列长度为20。本实验可以采用数组结构实现,首先随机产生页面序列,当发生请求调页时,若内存已满,则需要利用LRU算法,将当前一段时间内最久未使用过的页替换出去。•模拟程序的算法如下图:四、实现代码为:#include#defineM3#defineN20#defineMyprintfprintf("
3、---+---+---+---+---+---+---+---+---+
4、---+---+---+---+---+---+---+---+---+---+---
5、")/*表格控制*/typedefstructpage{intnum;/*记录页面号*/inttime;/*记录调入内存时间*/}Page;/*页面逻辑结构,结构为方便算法实现设计*/Pageb[M];/*内存单元数*/intc[M][N];/*暂保存内存当前的状态:缓冲区*/intqueue[100];/*记录调入队列*/intK;/*调入队列计数变量*//*初始化内存单元、缓冲区*/voidInit(Page*b,intc[M][N]){inti,j;for(i=0;i6、b[i].num=-1;b[i].time=N-i-1;}for(i=0;imax){max=b[i].time;tag=i;}}returntag;}/*判断页面是否已在内存中*/intEquation(intfold,Page*b){inti;for(i=0;i7、num)returni;}return-1;}voidLru(intfold,Page*b)/*LRU核心部分*/{inti;intval;val=Equation(fold,b);if(val>=0){b[val].time=0;for(i=0;i8、ta[N]={1,0,5,1,7,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4};inti,j;start:K=-1;Init(b,c);for(i=0;i9、%2d",a[j]);printf("10、");Myprintf;for(i=0;i11、r(j=0;j12、%2c",32);elseprintf("13、%2d",c[i][j]);}printf("14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
6、b[i].num=-1;b[i].time=N-i-1;}for(i=0;imax){max=b[i].time;tag=i;}}returntag;}/*判断页面是否已在内存中*/intEquation(intfold,Page*b){inti;for(i=0;i7、num)returni;}return-1;}voidLru(intfold,Page*b)/*LRU核心部分*/{inti;intval;val=Equation(fold,b);if(val>=0){b[val].time=0;for(i=0;i8、ta[N]={1,0,5,1,7,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4};inti,j;start:K=-1;Init(b,c);for(i=0;i9、%2d",a[j]);printf("10、");Myprintf;for(i=0;i11、r(j=0;j12、%2c",32);elseprintf("13、%2d",c[i][j]);}printf("14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
7、num)returni;}return-1;}voidLru(intfold,Page*b)/*LRU核心部分*/{inti;intval;val=Equation(fold,b);if(val>=0){b[val].time=0;for(i=0;i8、ta[N]={1,0,5,1,7,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4};inti,j;start:K=-1;Init(b,c);for(i=0;i9、%2d",a[j]);printf("10、");Myprintf;for(i=0;i11、r(j=0;j12、%2c",32);elseprintf("13、%2d",c[i][j]);}printf("14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
8、ta[N]={1,0,5,1,7,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4};inti,j;start:K=-1;Init(b,c);for(i=0;i9、%2d",a[j]);printf("10、");Myprintf;for(i=0;i11、r(j=0;j12、%2c",32);elseprintf("13、%2d",c[i][j]);}printf("14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
9、%2d",a[j]);printf("
10、");Myprintf;for(i=0;i11、r(j=0;j12、%2c",32);elseprintf("13、%2d",c[i][j]);}printf("14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
11、r(j=0;j12、%2c",32);elseprintf("13、%2d",c[i][j]);}printf("14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
12、%2c",32);elseprintf("
13、%2d",c[i][j]);}printf("
14、");}Myprintf;printf("diaoruduilie:");for(i=0;i
此文档下载收益归作者所有