欢迎来到天天文库
浏览记录
ID:57443641
大小:194.33 KB
页数:8页
时间:2020-08-18
《操作系统实验四.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统实验四————————————————————————————————作者:————————————————————————————————日期:姓名课程名称操作系统学时学号开课学期2016-2017(2)实验室软件实验室1指导教师实验项目实验时间实验目的通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。实验环境RedHatEnterpriseLinux实验过程及结果1、实验内容1、通
2、过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:A:50%的指令是顺序执行的B:25%的指令是均匀分布在前地址部分C:25%的指令是均匀分布在后地址部分2、将指令序列变换为页地址流设:页面大小为1K;用户内存容量4页到32页;用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条-第9条指令为第0页(对应虚存地址为[0,9])第10条-第19条指令为第1页(对应虚存地址为[10,19])………………………………第310条-第319
3、条指令为第31页(对应虚存地址为[310,319])3、计算并输出下述算法在不同内存容量下的命中率。1)最佳淘汰算法(OPT)2)先进先出的算法(FIFO)3)最近最久未使用算法(LRU)命中率=(1-页面失效次数)/页地址流长度实验流程图核心代码/*先进先出算法total_pf:用户进程的内存页面数*/intFIFO(inttotal_pf){inti,j;pfc_type*p;/*中间变量*/initialize(total_pf);/*初始化相关页面控制用数据结构*/busypf_head=busyp
4、f_tail=NULL;/*忙页面队列头,队列尾链接*/for(i=0;inext;pl[busypf_head->pn].pfn=INVALID;freepf_head=busypf_head;/*释放忙页面队列的第一个页面*/freepf_head->
5、next=NULL;/*表明还是缺页*/busypf_head=p;}p=freepf_head->next;/*按照FIFO方式调新页面入内存页面*/freepf_head->next=NULL;freepf_head->pn=page[i];pl[page[i]].pfn=freepf_head->pfn;if(busypf_tail==NULL)busypf_head=busypf_tail=freepf_head;else{busypf_tail->next=freepf_head;/*free页面
6、减少一个*/busypf_tail=freepf_head;}freepf_head=p;}}printf("FIFO:%6.4f",1-(float)diseffect/320);return0;OPT(最佳置换算法)设计原理:需要进行页面置换,把内存中以后一段时间都不使用或是使用时间离现在最远的页面换出。2.FIFO(先进先出算法)3.LRU(最久未使用算法)实验总结在做这个实验时,遇到很多的困难,第一将课本上的关于虚拟存储的概念理解清楚,然后将几种置换算法的优缺点,例如OPT算法作用多是作为一个标
7、准算法来衡量其他算法的性能,FIFO算法比较容易实现,对于具有按线性顺序地址访问空间的程序是比较合适的,而对其他情况则效率不高。对于LRU算法来讲算是最为接近OPT算法的但是其相比于FIFO算法又比较难以实现。评语成绩:签名:
此文档下载收益归作者所有