存储管理系统设计_第1页
存储管理系统设计_第2页
存储管理系统设计_第3页
存储管理系统设计_第4页
存储管理系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

湖南工业大学课程设计资料袋计算机与通信学院学院(系、部)2023~2023学年第1学期课程名称计算机操作系统指导教师左新娥职称讲师学生姓名陈彦兵专业班级网络1101学号题目存储管理系统设计成绩起止日期2023年12月9日~2023年12月15日目录清单序号材料名称资料数量备注1课程设计任务书2课程设计说明书3456课程设计任务书2023—2023学年第1学期学院(系、部)计算机与通信学院专业网络工程班级111-2课程名称:计算机操作系统学生姓名:陈彦兵设计题目:存储管理系统设计指导教师:左新娥完毕期限:自2023年12月9日至2023年12月15日共1周内容及任务一、设计内容设计一个允许n个进程并发运营的进程管理模拟系统。该系统涉及有简朴的进程控制、同步与通讯机构,其进程调度算法可以选择优先级调度,时间片轮转,短进程优先等。每个进程用一个PCB表达,其内容根据具体情况设立。各进程之间有一定的同步关系(可选)。系统在运营过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观测进程的运营过程及系统的管理过程。二、设计任务课程设计说明书(纸质+电子版),内容涉及:设计内容、系统分析(涉及可行性分析、需求分析等)及功能分析;系统设计(规定画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的重要数据结构进行说明等。)、设计总结(评价/碰到的问题/体会/建议等)、使用说明等。三、设计规定按功能规定开发系统,能对的运营。程序代码书写规范,有充足的注释。课程设计所使用的编程语言任选,但建议使用C或C++;绿色软件:程序运营不需安装,避免写系统和注册表;进度安排起止日期工作内容课程设计前一周召开动员大会,学生选题;2023-12-9~2023-12-10系统分析和设计;2023-12-11~2023-11-13熟悉软件开发工具、编码系统、系统测试以及中期答辩;2023-12-14~2023-12-15撰写并提交课程设计说明书(含电子文档)、源程序等。主要参考资料[1]罗宇、邹鹏、邓胜兰等著.《操作系统》[M].北京:电子工业出版社,2023[2]AndrewS.Tanenbaum著.陈向群等译.《现代操作系统》[M].北京:机械工业出版社,2023[3]邓胜兰编著.《操作系统基础》[M].北京:机械工业出版社,2023[4]DaveProbert著,陈向群等译《Windows操作系统原理》[M].北京:机械工业出版,2023[5]罗宇褚瑞等等著.《操作系统课程设计》[M].北京:机械工业出版,2023指导教师(签字):年月日系(教研室)主任(签字):年月日

课程设计说明书课程名称:计算机操作系统设计题目:存储管理系统设计专业:网络工程班级:1101学生姓名:陈彦兵学号:指导教师:左新娥2023年12月7日目录1课程设计简介 41.1实验目的 41.2课程设计内容 42课程设计实现过程 52.1系统流程图 52.2结构体及先关数组的设计 62.3重要功能函数设计 61.给物理块赋初值 62.初始化页面并产生一组随机数 63.查找是否有空闲内存 74.查找内存中是否有该页面 75.查找应予置换的页面 73设计总结 15参考文献 161课程设计简介1.1实验目的通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。1.2课程设计内容1.通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生产:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分。2.将指令序列变换成为页地址流,设页面大小为1K;用户内存容量为4页到32页;用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条至第9条指令为第0页;第10条至19条指令为第1页;…第310条至319条指令为第31页。3.计算并输出下述各种算法在不同内存容量下的命中率。(1)先进先出算法(FIFO)(2)最近最少使用算法(LRU)(3)最佳使用算(OPT)命中率=1-页面失效次数/页地址流长度。本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所相应的页不在内存的次数。1.3思绪设计一个类,把页面存储管理系统提成各个模块,把不同的功能进行封装。实现程序设计的安全易移植性。把各个分页算法分装在类的功能函数中。

2课程设计实现过程开始2.1系统流程图开始是产生一组随机数产生一组随机数选择页面置换速发选择页面置换速发最久未使用最佳置换算法FIFO算法最久未使用最佳置换算法FIFO算法运营结束运营结束是否接着运营是否接着运营 否程序结束程序结束2.2结构体及先关数组的设计1.重要结构体用来存放物理块的大小以及页面是否已经被访问。structpageInfor{ intID;//页面号 intvisit;//被访问标记};/*页面逻辑结构,结构为方便算法实现设计*/2.重要变量设计#defineBsize3//物理块数#definePsize20//页面块数pageInfor*block;//物理块pageInfor*page;//页面号串2.3重要功能函数设计1.给物理块赋初值voidBlockClear() { for(inti=0;i<Bsize;i++) { block[i].ID=-1; block[i].visit=0; }2.初始化页面并产生一组随机数 voidinital() { intQString[Psize]={0}; srand(time(0)); for(inti=0;i<20;i++) { QString[i]=rand()%10; printf("%d",QString[i]); } cout<<endl; block=newpageInfor[Bsize]; BlockClear(); page=newpageInfor[Psize]; for(i=0;i<Psize;i++) { page[i].ID=QString[i]; page[i].visit=0; } }3.查找是否有空闲内存 intfindSpace() { for(inti=0;i<Bsize;i++) if(block[i].ID==-1) returni;//找到空闲内存,返回BLOCK中位置 return-1; }4.查找内存中是否有该页面 intfindExist(intcurpage) { for(inti=0;i<Bsize;i++) if(block[i].ID==page[curpage].ID) returni;//找到内存中有该页面,返回BLOCK中位置 return-1; }5.查找应予置换的页面intfindReplace() { intpos=0; for(inti=0;i<Bsize;i++) if(block[i].visit>=block[pos].visit) pos=i;//找到应予置换页面,返回BLOCK中位置 returnpos; }6.FIFO算法 voidFIFO() { count=0; intexist,space,position; for(inti=0;i<Psize;i++) { exist=findExist(i); if(exist!=-1) { cout<<"即将访问的是页面"<<page[i].ID<<endl; cout<<"内存中已存在该页"<<endl; } else { space=findSpace(); if(space!=-1) { block[space]=page[i]; display(); } else { position=findReplace(); cout<<"即将访问的是页面"<<page[i].ID<<"\n将被置换出的是页面"<<block[position].ID<<endl; block[position]=page[i]; display(); count++; } } for(intj=0;j<Bsize;j++) block[j].visit++;//BLOCK中所有页面visit++ } cout<<"\nFIFO算法的缺页率是:"<<(float)count/20<<endl; }7.LRU算法voidLRU() { count=0; intexist,space,position; for(inti=0;i<Psize;i++) { exist=findExist(i); if(exist!=-1) { cout<<"即将访问的是页面"<<page[i].ID<<endl; cout<<"内存中已存在该页"<<endl;; block[exist].visit=-1;//恢复存在的并刚访问过的BLOCK中页面visit为-1 } else { space=findSpace(); if(space!=-1) { block[space]=page[i]; display(); } else { position=findReplace(); cout<<"即将访问的是页面"<<page[i].ID<<"\n将被置换出的是页面"<<block[position].ID<<endl; block[position]=page[i]; display(); count++; } } for(intj=0;j<Bsize;j++) { block[j].visit++; } } cout<<"\nLRU算法的缺页率是:"<<(float)count/20<<endl; }8.OPT算法 voidOPT() { count=0; intexist,space,position; for(inti=0;i<Psize;i++) { exist=findExist(i); if(exist!=-1) { cout<<"即将访问的是页面"<<page[i].ID<<endl; cout<<"内存中已存在该页"<<endl; } else { space=findSpace(); if(space!=-1) { block[space]=page[i]; display(); } else { for(intk=0;k<Bsize;k++) for(intj=i;j<Psize;j++) { if(block[k].ID!=page[j].ID) { block[k].visit=1000; } else { block[k].visit=j; break; } } position=findReplace(); cout<<"即将访问的是页面"<<page[i].ID<<"\n将被置换出的是页面"<<block[position].ID<<endl; block[position]=page[i]; display(); } } } } 9.实验结果1.主界面2.1产生的随机数2.LRU算法界面FIFO算法OPT算法

3设计总结请求页式管理的基本原理是将逻辑地址空间提成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。页式系统的逻辑地址分为页号和页内位移量。页表涉及页号和块号数据项,它们一一相应。根据逻辑空间的页号,查找页表相应项找到相应的块号,块号乘以块长,加上位移量就行成存储空间的物理地址。每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。3.写出这三种页面置换算法的实现思想。FIFO算法总是淘汰最先调入主存的页面,即淘汰在主存中驻留时间最长的页面,认为驻留时间最长的页不

温馨提示

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

评论

0/150

提交评论