实验5---页面置换算法.docx

实验5---页面置换算法.docx

ID:55039147

大小:396.85 KB

页数:13页

时间:2020-04-26

实验5---页面置换算法.docx_第1页
实验5---页面置换算法.docx_第2页
实验5---页面置换算法.docx_第3页
实验5---页面置换算法.docx_第4页
实验5---页面置换算法.docx_第5页
资源描述:

《实验5---页面置换算法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验5页面置换算法一、实验题目:页面置换算法(请求分页)二、实验目的:进一步理解父子进程之间的关系。1)理解内存页面调度的机理。2)掌握页面置换算法的实现方法。3)通过实验比较不同调度算法的优劣。4)培养综合运用所学知识的能力。页面置换算法是虚拟存储管理实现的关键,通过本次试验理解内存页面调度的机制,在模拟实现FIFO、LRU等经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。将不同的置换算法放在不同的子进程中加以模拟,培养综合运用所学知识的能力。三、实验内容及要求这是一

2、个综合型实验,要求在掌握父子进程并发执行机制和内存页面置换算法的基础上,能综合运用这两方面的知识,自行编制程序。程序涉及一个父进程和两个子进程。父进程使用rand()函数随机产生若干随机数,经过处理后,存于一数组Acess_Series[]中,作为内存页面访问的序列。两个子进程根据这个访问序列,分别采用FIFO和LRU两种不同的页面置换算法对内存页面进行调度。要求:1)每个子进程应能反映出页面置换的过程,并统计页面置换算法的命中或缺页情况。设缺页的次数为diseffect。总的页面访问次数为total_in

3、struction。缺页率=disaffect/total_instruction命中率=1-disaffect/total_instruction2)将为进程分配的内存页面数mframe作为程序的参数,通过多次运行程序,说明FIFO算法存在的Belady现象。四、程序流程图五、运行结果及其说明FIFO:LRU::六、回答以下问题:①父进程、子进程之间的并发执行的过程父进程与子进程之间的并发执行宏观并行,微观串行。从宏观来说,父进程创建子进程1,子进程1和父进程同时执行,直到父进程创建子进程2遇到wait(

4、)函数挂机为止,当子进程1结束父进程和子进程2并发执行到再次遇见wait()函数是挂起等待子进程2结束,到子进程2结束返回父进程父进程继续执行至结束。从微观来说,父进程先执行至创建子进程1,接下来父进程挂起执行子进程1知道子进程1结束回到父进程;父进程继续执行到创建子进程2再次挂起,执行子进程2,直到子进程2结束回到父进程继续执行至结束。②通过完成实验,根据你的体会,阐述虚拟存储器的原理。虚拟存储器实际上是用来解决作业大而内存小的问题,他通过页面置换算法来提供远大于内存地址空间的地址范围,针对不同的程序将不

5、同的数据页面读取到虚拟存储器中用来实现。③写出FIFO算法中出现Belady现象的内存页面访问序列。4个内存页面数:序列2253313125526次命中,命中率为0.53个内存页面数:序列2132143131557次命中,命中率为0.58七、程序源代码、文档注释及文字说明#include#include#include#include#include#include#include

6、ait.h>#include#definemax_Frame12#defineFrame2main(){srand(time(0));intpid1,pid2,fd[2],Acess_Series[12],temp;floateffect,rate=0;charstr1[100],str2[100];structM_Frame{intpage_no;charflag;};structM_Frameone_frame[4];one_frame[0].page_no=0;one_frame[

7、1].page_no=0;one_frame[2].page_no=0;one_frame[3].page_no=0;effect=0;inti=0;printf("内存访问页面序列:");for(;i<12;i++){Acess_Series[i]=rand()%5+1;printf("%d",Acess_Series[i]);}while((pid1=fork())==-1);if(pid1==0){intno=0;intpno=0;printf("FIFO页面置换算法:");for(;no<12;

8、no++){printf("调入的页面号是%d",Acess_Series[no]);intk=0;for(;k<=Frame;k++){if(one_frame[k].page_no==Acess_Series[no]){effect++;printf("命中");break;}if(one_frame[k].page_no==0){one_frame[k].page_no=Acess_Series[no]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。