存储管理资料_第1页
存储管理资料_第2页
存储管理资料_第3页
存储管理资料_第4页
存储管理资料_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东协和学院课程设计课程名称操作系统题目存储管理专业网络工程班级计算机普本13-1姓名尤世源指导教师杨静一、课程设计目的请求调页存储管理系统的设计与实现.。二、课程设计内容与要求、环境2.1内容根据请求调页存储管理方式的相关原理,用VC编程模拟实现一个请求调页存储管理系统.2.2要求(1)该系统的页面置换算法必须包括先进先出页面淘汰算法(FIFO)、最近最少使用LRU页面淘汰算法。同时系统可以随意设置当前分配给作业的页块数。(2)系统运行时,任意输入一个页面访问序列,设定不同的页面置换算法和页块数,输出其页面淘汰的情况,计算其缺页次数和页面置换次数。(3)系统结束后,要求比较同一个页面访问序列,在不同的页面置换算法和页块数的情况下,其产生的缺页次数和页面置换次数,并分析其原因。三、课程设计基本思想先进先出算法总是淘汰最先进入内存的页面,即选择在内存中保留时间最久的页面予以淘汰。算法实现原理:把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,使它总是指向最老的页面,遇到缺页淘汰时就淘汰当前指针指向的最老页面,并修改指针位置使它指向下一个事件最久页面。最近最久未使用的页面置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似。算法原理:算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来多经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。程序中采用的分配策略是固定分配局部置换,即为进程分配一定书面的物理块,在整个运行期间内存块数都不再改变,发现缺页只能进行页面换进和换出。主要代码:for(i=0;i<num_page;i++){if(a[i]==n)//n为当前页面,a[i]为已如内存的页面returntrue;}returnfalse;}4.3.4重复操作again()函数当flag1=1时进行重新输入新序列的操作;当flag2=1时,进行不改变访问序列只改变页面数的操作。4.3.5FIFO()函数根据算法原理利用替换指针指向的最老页面,将最老页面换出,当然要执行这一功能在要flag1=0和flag2=0基础上。部分代码:if(!search(order[i]))//当内存中没有当前页面时{count++;//缺页数加1result1[i]='*';//标上缺页标志if(a[num_1]!=-1)//表示当前页面已满要淘汰一个{a[thisn]=order[i];//根据thisn指针找到最老页淘汰,并将指针hisn++;//指向下一个最老页面if(thisn>=num_page)thisn=0;其流程图如下:4.3.6最近最久未使用LRU()函数当内存满时要实现它的功能要进行一下两步:1查找当前页中的值对应的最近位置;2找出位置最远的那个;3淘汰最远那个页面。主要代码:if(a[num_1]!=-1)//表示当前页面已满要淘汰一个{intj,k;for(j=0;j<i;j++)//查找当前页中的值对应的最近位{for(k=0;k<num_page;k++){if(order[j]==a[k]){pos[k]=j;}}}intmin=pos[0],min_pos=0;for(k=1;k<num_page;k++)//找出位置最远的那个{if(min>pos[k]){min=pos[k];min_pos=k;}}流程图:4.3.7菜单menu()设计其实菜单设计是很简单的,用大量的输出语句设计几个case()即可。4.4随机数产生机理srand函数的作用是根据参数seed,设置一个随机启示点。rand函数根据这个起始点,产生随机数序列。默认的随机种子为。如果随机种子一样,rand函数所产生的随机序列也一样。为使每次程序运行都能产生不同的随机序列,每次都应产生一个不同的种子参数。五、运行结果5.1FIFO运行结果(不同的内存容量下相同的访问串序列)截图1

截图25.2LRU运行结果(相同的内存容量下不同的访问串序列)截图3截图4六、设计心得本次课程设计主要意义通过收集资料编写程序和分析结果来更深刻地领会操作系统工作原理和理解操作系统的实现方法,同时更深一步的了解FIFO和LRU的算法具体实施过程。将理论与实际结合,在理论的指导下,来进行实践操作,又在实践的基础上,证明理论的可行性。设计分为两个阶段,一个是算法的理解和设计,一个是程序的编写和算法的改进。第一阶段要了解内存的分配策略、内存掉也策略以及FIFO和LRU算法的执行原理。程序中采用的分配策略是固定分配局部置换,即为进程分配一定书面的物理块,在整个运行期间内存块数都不再改变,发现缺页只能进行页面换进和换出。第二个阶段主要编写程序和改善程序。通过编写程序可以更深入的理解算法和算法的特性。具体实现时利用多个函数将功能具体化,具体函数在程序介绍有了较为详细的说明。课程设计的须待的问题有:并不能产生真正的随机。在实际中所谓的随机只是能产生随机序列,而要做到真正的随机我们希望产生随机序列的种子也能随机产生。菜单做的还不够好。针对以上两个问题我们做以下修改可以得到更为满意的结果:只不设置随机种子,使用在默认情况下随机种子来自系统时钟(即定时/计数器的值)timer;通过修改可以实现在嵌套菜单中也可以再进行算法选择功能。printf("2.不改变访问序列只改变算法.\n");在用switch()语句来选择算法。七、参考资料[1]汤小丹,梁红兵等.计算机操作系统(第3版).西安电子科技大学出版社2011[2]汤小丹,梁红兵等.计算机操作系统(第3版)习题解答与实验指导.西安电子科技大学出版社.2011[3]谭浩强.C语言程序设计教程.高等教育出版社,2009[4]网络资源

本科生课程设计成绩评定表班级:姓名:学号:序号评分项目满分实得分1学习态度认真、遵守纪律102设计分析合理性1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论