- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
(LRU)置换算法-操作系统
实验报告三
——内存页面置换算法的设计
姓名:田玉祥
班级:计算机科学与技术专业一班
一、实验内容
·实现最近最久未使用(LRU)置换算法
二、实验目的
•LINUX中,为了提高内存利用率,提供了内外存进程对换机制,
内存空间的分配和回收均以页为单位进行,一个进程只需将其
一部分调入内存便可运行,还支持请求调页的存储管理方式。
•本实习要求学生通过请求页式存储管理中页面置换算法模拟
设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页
面置换算法。
三、实验题目
1.最近最久未使用(LRU)置换算法原理就是:当需要淘汰某页
面时,选择当前一段时间内最久未使用过的页先淘汰,即淘汰距
当前最远的上次使用的页。
•例如:分配给该进程的页块数为3,一个20位长的页面访问序
列为:12560,36536,56042,70435,
则缺页次数和缺页率按下图给出:
假定分配给该进程的页块数为3,页面访问序列长度为20。本实
验可以采用数组结构实现,首先随机产生页面序列,当发生请求调页
时,若内存已满,则需要利用LRU算法,将当前一段时间内最久未
使用过的页替换出去。
程序实现想法:
用一个数组a[n]来存放所有需要访问的页,用一个数组b[3]来存
放页表,用数组c[3]来存放页表每一页的权值,就是最近最少使用的
度,度越高则使用率越小,用n次循环,每次a[i]进行判断时先判断
有没有空格,再判断a[i]是否已经在页表中,此时注意要将权值归1,
若都没有这些情况,则用函数intMAX(inta,intb,intc)找到权值最大
的,进行替换,并将其他页的权值加1.
实验代码:
//LRU算法,最近最少使用的页替换算法
#includeiostream
#includestring
usingnamespacestd;
intMAX(inta,intb,intc)//赋值之后的权值中找到权值最大的,返回
它的下标也就是最近最少使用的
{
intmax=a;
if(maxb)
{
max=b;
if(maxc)
max=c;
}
else
if(maxc)
max=c;
if(a==max)//找到权值最大的数的下标
return0;
elseif(b==max)
return1;
elseif(c==max)
return2;
}
intmain()
{
//stringk;//k表示当前最近最少使用的页;
inti,j,n,l,m,p,q;//j表示当前访问的页是否已经在访问,0表示没
有发生缺页,1表示发生缺页
//q来表示页表是否有空格,即当前是否全
部在使用,1表示全部在使用,0表示还有空格
string*b=newstring[3];//存放页表
int*c=newint[3];//存放页表的权值
for(i=0;i3;i++)
{
c[i]=1;
}
请输入要访问的页码页数:请输入要访问的页码页数:
cinn;
string*a=newstring[n];//存放所有要访问的页
请
文档评论(0)