欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统实验-存储管理(共7页).doc

    • 资源ID:14040208       资源大小:31.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统实验-存储管理(共7页).doc

    精选优质文档-倾情为你奉上实验三 存储管理【实验目的和要求】1、请求页式存储管理中页面置换算法模拟设计。2、了解虚拟存储技术的特点。3、掌握请求页式存储管理的页面置换算法。【实验原理】1、存储管理的主要功能之一是合理地分配空间。2、请求页式管理是一种常用的虚拟存储管理技术。3、命中率=1-(页面失效次数/页地址流长度)。本实验页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。【实验步骤】 一、问题描述与分析 1、通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: (1)50%的指令是顺序执行的; (2)25%的指令是均匀分布在前地址部分; (3)25%的指令是均匀分布在后地址部分。 具体的实施方法是: (1)在0,319的指令地址之间随机选取一起点m; (2)顺序执行一条指令,即执行地址为m+l的指今; (3)在前地址0,m+l中随机选取一条指令并执行,该指令的地址为m; (4)顺序执行一条指今,其地址为m +l; (5)在后地址m +2,319中随机选取一条指令并执行; (6)重复上述步骤(1)一(5),直到执行320次指令。2、将指令序列变换成为页地址流 (1)页面大小为1K; (2)用户内存容量为4页到32页; (3)用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条第9条指令为第0页(对应虚存地址为0,9); 第10条第19条指令为第1页(对应虚存地址为10, l9); 第310条第319条指令为第31页(对应虚存地址为310,3191); 按以上方式,用户指令可组成32页。3、考虑计算并输出下述各种算法在不同内存容量下的命中率。(1)先进先出的算法(FIFO) ;(2)最近最少使用算法(LRU); 其中(1)和(2)必做三、程序设计与调试在VC+6.0环境下进行程序设计和调试。程序分析:问题1:怎样使模拟的指令随机?答:通过使用C+的rand函数生成随机数,来产生指令,并用算法保证指定指令序列的需求。问题2:指令序列如何变换成页地址流的?页地址主要包括哪两部分?答:for(i=0;i<total_instruction;i+)pagei=ai/10;offseti=ai%10;由pagei=ai/10;计算出页号。再执行offseti=ai%10;计算出偏移量。 页地址包括页号和偏移量两部分问题3:实验中的页帧可以设置从多少到多少?页帧>32是什么意思?答:页帧可以设置4到32页用户虚拟内存为32k,虚拟页面无法映射到这些地址,没有意义。问题4:FIFO的已经分配的页面是如何管理的?答:由操作系统维护一个队列(链表),新页面由队尾进入,时间最久的页面从队头出去。当发生缺页中断时,淘汰表头的页面并把新调度的页面加到表尾。问题5:LRU算法是如何确定哪一页被置换的?主要思想是什么?答:LRU算法的置换在发生中断的时侯未使用时间最长的页面。LRU的主要思想:已经很久没使用的页面很有可能在未来较长的一段时间内仍然不会被使用。在缺页中断发生时,置换未使用时间最长的页面。四、数据分析分析数据输出结果(文字阐述分析即可)。问题1:为什么命中率最高为90%?答:因为一共32个页帧,一共出现320次,一共占总页帧的10%。每一个页帧在第一次进入内存时都会产生缺页,所以最高只有90%的命中率。问题2:FIFO和LRU比较,命中率怎样?主要原因是什么?答:FIFO比LRU命中率低,因为在FIFO算法中经常被访问的很有可能是先进入的那些页面,由于它先进入内存,在算法的规定下导致内存中经常会进行缺页置换。这种操作会导致命中率变低。问题3:void initialize(int total_pf)都做了什么?答:页面的初始化函数,给相关的页面赋值。【实验主要仪器及材料】Windows/X86计算机 VC+6.0程序源代码:(Dev-C+编译通过)#define INVALID -1#define total_instruction 320 /指令流长#define total_vp 32 /虚拟页表长度/#define clear_period 50 /清零周期typedef struct /页面结构 int pn,pfn,counter,time; /页号、页面有效无效、一个周期内访问该页面次数、访问时间pl_type;pl_type pltotal_vp; /页面结构数组struct pfc_struct /页面控制结构 int pn,pfn;struct pfc_struct *next;typedef struct pfc_struct pfc_type;pfc_type pfctotal_vp,*freepf_head,*busypf_head,*busypf_tail;int diseffect;int atotal_instruction;int pagetotal_instruction,offsettotal_instruction;void initialize(int);void FIFO(int);void LRU(int);/void OPT(int);#include <stdio.h>#include <stdlib.h>#include <process.h>int main()int S,i;srand(_getpid()*10);/每次运行时进程号不同,可以作为初始化随机数队列的种子S=319*rand()/32767 ; /得到一个0到319之间的一个数 for (i=0;i<total_instruction;i+=4)/产生指令队列ai=S;/任选一指令访问点ai+1=ai+1;/顺序执行一条指令if (ai+1=320)ai+1=0;ai+2=ai*rand()/32767;/执行前地址指令ai+3=319-ai+2;/执行后地址指令 /S=rand()*(318-ai+2)/32767+ai+2+1;S=319*rand()/32767 ;for(i=0;i<total_instruction;i+)/将指令序列变换成页地址流:页号+偏移量pagei=ai/10;offseti=ai%10;for(i=4;i<=32;i+)printf("%2d page frames",i);FIFO(i);LRU(i);/OPT(i);/LFU(i);/NUR(i);printf("n");return 1; void FIFO(int total_pf) /total_pf是用户进程页面数目int i;pfc_type *p; initialize(total_pf);busypf_head=busypf_tail=NULL; for(i=0;i<total_instruction;i+)if(plpagei.pfn=INVALID) /页面失效diseffect+; /失效计数if(freepf_head=NULL) /无空闲页面时置换一页p=busypf_head->next;plbusypf_head->pn.pfn=INVALID;freepf_head=busypf_head;freepf_head->next=NULL;busypf_head=p;p=freepf_head->next; /有空闲页面时分配一页freepf_head->next=NULL;freepf_head->pn=pagei;plpagei.pfn=freepf_head->pfn;if(busypf_tail=NULL)busypf_head=busypf_tail=freepf_head;elsebusypf_tail->next=freepf_head;busypf_tail=freepf_head;freepf_head=p;printf("FIFO():%6.4f ",1-(float)diseffect/320);void LRU(int total_pf) /total_pf是用户进程页面数目,即进程物理内存pageframe数目int min,minj,i,j,present_time; initialize(total_pf);present_time=0;for(i=0;i<total_instruction;i+)if(plpagei.pfn=INVALID) /页面失效diseffect+; /失效计数if(freepf_head=NULL) /无空闲页面时置换一页min=32767;for(j=0;j<total_vp;j+)if(min>plj.time && (plj.pfn !=INVALID)min=plj.time ;minj=j;freepf_head=&pfcplminj.pfn;plminj.pfn=INVALID;plminj.time=-1;freepf_head->next =NULL; /有空闲页面时分配一页plpagei.pfn=freepf_head->pfn; plpagei.time=present_time;freepf_head=freepf_head->next; else plpagei.time=present_time;present_time+;printf("LRU():%6.4f ",1-(float)diseffect/320);void initialize(int total_pf)int i;diseffect=0;for(i=0;i<total_vp;i+) /页面控制结构清空pli.pn=i;pli.pfn =INVALID;pli.counter =0;pli.time =-1;for(i=1;i<total_pf;i+) /建立链接pfci-1.next=&pfci;pfci-1.pfn =i-1;pfctotal_pf-1.next =NULL;pfctotal_pf-1.pfn =total_pf-1;freepf_head=&pfc0;专心-专注-专业

    注意事项

    本文(操作系统实验-存储管理(共7页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开