实验4 内存管理

实验4 内存管理

ID:46900414

大小:521.01 KB

页数:17页

时间:2019-11-29

实验4 内存管理_第1页
实验4 内存管理_第2页
实验4 内存管理_第3页
实验4 内存管理_第4页
实验4 内存管理_第5页
资源描述:

《实验4 内存管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验4内存管理学校:FJUT学号:3131903229班级:计算机1302姓名:姜峰注:其中LFU和NRU算法运行结果可能与其他人不同,只是实现方式不同,基本思路符合就可以。一.实验学时与类型学时:2,课外学时:自定实验类型:设计性实验二.实验目的模拟实现请求页式存储管理中常用页面置换算法,理会操作系统对内存的调度管理。三.实验内容要求:各算法要给出详细流程图以及执行结果截图。假设有一程序某次运行访问的页面依次是:0,1,2,4,3,4,5,1,2,5,1,2,3,4,5,6,请给出采用下列各页面置换算法时页面的换进换出情况,并计算各调度算法的命中

2、率(命中率=非缺页次数/总访问次数),初始物理内存为空,物理内存可在4~20页中选择。(1)FIFO:最先进入的页被淘汰;(2)LRU:最近最少使用的页被淘汰;(3)OPT:最不常用的页被淘汰;(选做)(4)LFU:访问次数最少的页被淘汰(LFU)。(选做)源代码:#include#include#include#include#defineMAXNUM100structPhy_Memory{//定义一个物理内存结构体charPage;inttime;};char*Out

3、Put;structPhy_Memory*Phy_Page;voidPrint(char*PageStr,intPhy_PageNum,intabsence){//打印图解函数inti,j;for(i=0;i

4、{printf("%c",*(OutPut+i*strlen(PageStr)+j));}printf("");}printf("缺页数为:%d",absence);printf("总访问次数为:%d",strlen(PageStr));printf("缺页率为%.2f",(double)absence/strlen(PageStr));}intIsExist(char*Temp,intPhy_PageNum){//判断某页面是否存在于物理内存中inti;for(i=0;iPa

5、ge!=*Temp;i++);if(i

6、存未满if(!IsExist(Temp,Flag)){//若此页面未被访问(Phy_Page+Flag)->Page=*Temp;Flag++;absence++;}}else{//若物理内存已满if(!IsExist(Temp,Phy_PageNum)){//若此页面未被访问for(i=0;itime){location=i;num=(Phy_Page+i)->time;}}(Phy_Page+location)->Page=*Temp;(Phy_Page+l

7、ocation)->time=0;absence++;}}for(i=0;itime++;*(OutPut+i*strlen(PageStr)+(Temp-PageStr))=(Phy_Page+i)->Page;}Temp++;}Print(PageStr,Phy_PageNum,absence);}voidLRU(char*PageStr,intPhy_PageNum){//依旧利用计数器方式,也可用栈来实现char*Temp=PageStr;//定义Tem

8、p指针指向PageStr首地址inti,num,location,absence=0;intFlag=0;//定义一个标记

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

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

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