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

下载本文档

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

文档简介

1、 湖南工业大学课 程 设 计资 料 袋 计算机与通信学院 学院(系、部) 2013 2014 学年第 1 学期 课程名称 计算机操作系统 指导教师 左新娥 职称 讲师 学生姓名 陈彦兵 专业班级 网络1101 学号 题 目 存储管理系统设计 成 绩 起止日期 2013 年 12 月 9 日 2013 年 12 月 15 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书2课程设计说明书3456课程设计任务书2013 2014学年第 1 学期学院(系、部) 计算机与通信学院 专业 网络工程 班级 111-2 课程名称: 计算机操作系统 学生姓名: 陈彦兵 设计题目: 存储管理系统设

2、计 指导教师: 左新娥 完成期限:自 2013 年 12 月 9 日至 2013 年 12 月 15 日 共 1 周内容及任务一、设计内容设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可以选择优先级调度,时间片轮转,短进程优先等。每个进程用一个PCB表示,其内容根据具体情况设置。各进程之间有一定的同步关系(可选)。系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察进程的运行过程及系统的管理过程。二、设计任务课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设

3、计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。三、设计要求1. 按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。2. 课程设计所使用的编程语言任选,但建议使用C或C+;3. 绿色软件:程序运行不需安装,避免写系统和注册表;进度安排起止日期工作内容课程设计前一周召开动员大会,学生选题;2013-12-92013-12-10系统分析和设计;2013-12-112013-11-13熟悉软件开发工具、编码系统、系统测试以及中期答辩;2013-12-142013-12-15撰写并

4、提交课程设计说明书 (含电子文档)、源程序等。主要参考资料1罗宇、邹鹏、邓胜兰等著操作系统M北京:电子工业出版社,20112 Andrew S.Tanenbaum 著陈向群等译现代操作系统M北京:机械工业出版社,20073 邓胜兰编著操作系统基础M北京:机械工业出版社,20094 Dave Probert著,陈向群等译Windows操作系统原理M北京:机械工业出版 ,20065 罗宇 褚瑞等等著操作系统课程设计M北京:机械工业出版,2004指导教师(签字): 年 月 日系(教研室)主任(签字): 年 月 日课程设计说明书 课程名称: 计算机操作系统 设计题目: 存储管理系统设计 专 业: 网络

5、工程 班级: 1101 学生姓名: 陈彦兵 学 号: 指导教师: 左新娥 2012年 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条指令,指令

6、的地址按下述原则生产: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)命中率页面失效次数页地址流长度。本实验中,页地址流长度为32

7、0,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。1.3思路设计一个类,把页面存储管理系统分成各个模块,把不同的功能进行封装。实现程序设计的安全易移植性。把各个分页算法分装在类的功能函数中。2课程设计实现过程开始2.1系统流程图是产生一组随机数选择页面置换速发最久未使用最佳置换算法FIFO算法运行结束是否接着运行否程序结束2.2结构体及先关数组的设计1主要结构体用来存放物理块的大小以及页面是否已经被访问。struct pageInforint ID;/页面号int visit;/被访问标记; /* 页面逻辑结构,结构为方便算法实现设计*/2.主要变量设计#define Bs

8、ize 3 /物理块数#define Psize 20 /页面块数pageInfor * block;/物理块pageInfor * page;/页面号串2.3主要功能函数设计1给物理块赋初值void BlockClear()for(int i=0; i<Bsize; i+)blocki.ID = -1;blocki.visit = 0;2初始化页面并产生一组随机数void inital()int QStringPsize=0;srand(time(0);for(int i=0;i<20;i+)QStringi=rand()%10;printf("%d",QSt

9、ringi);cout<<endl;block = new pageInforBsize;BlockClear();page = new pageInforPsize;for(i=0; i<Psize; i+)pagei.ID = QStringi;pagei.visit = 0;3查找是否有空闲内存int findSpace()for(int i=0; i<Bsize; i+)if(blocki.ID = -1) return i;/找到空闲内存,返回BLOCK中位置return -1;4查找内存中是否有该页面int findExist(int curpage)for

10、(int i=0; i<Bsize; i+)if(blocki.ID = pagecurpage.ID) return i;/找到内存中有该页面,返回BLOCK中位置return -1;5查找应予置换的页面int findReplace()int pos = 0;for(int i=0; i<Bsize; i+)if(blocki.visit >= blockpos.visit) pos = i;/找到应予置换页面,返回BLOCK中位置return pos;6. FIFO算法void FIFO() count=0;int exist,space,position ;for(i

11、nt i=0; i<Psize; i+)exist = findExist(i);if(exist != -1)cout<<"即将访问的是页面"<<pagei.ID<<endl; cout<<"内存中已存在该页"<<endl;else space = findSpace(); if(space != -1) blockspace = pagei; display(); else position = findReplace();cout<<"即将访问的是页面"

12、;<<pagei.ID<<"n将被置换出的是页面"<<blockposition.ID<<endl;blockposition = pagei; display();count+; for(int j=0; j<Bsize; j+) blockj.visit+;/BLOCK中所有页面visit+cout<<"nFIFO算法的缺页率是:"<<(float)count/20<<endl;7LRU算法void LRU()count=0;int exist,space,po

13、sition ;for(int i=0; i<Psize; i+)exist = findExist(i);if(exist != -1) cout<<"即将访问的是页面"<<pagei.ID<<endl; cout<<"内存中已存在该页"<<endl; blockexist.visit = -1;/恢复存在的并刚访问过的BLOCK中页面visit为-1 else space = findSpace(); if(space != -1) blockspace = pagei; displa

14、y(); else position = findReplace();cout<<"即将访问的是页面"<<pagei.ID<<"n将被置换出的是页面"<<blockposition.ID<<endl;blockposition = pagei; display();count+; for(int j=0; j<Bsize; j+) blockj.visit+; cout<<"n LRU算法的缺页率是:"<<(float)count/20<&

15、lt;endl;8.OPT算法void OPT()count=0;int exist,space,position ;for(int i=0; i<Psize; i+) exist = findExist(i); if(exist != -1) cout<<"即将访问的是页面"<<pagei.ID<<endl; cout<<"内存中已存在该页"<<endl; else space = findSpace(); if(space != -1) blockspace = pagei; disp

16、lay(); else for(int k=0; k<Bsize; k+)for(int j=i; j<Psize; j+) if(blockk.ID != pagej.ID) blockk.visit = 1000; else blockk.visit = j;break; position = findReplace(); cout<<"即将访问的是页面"<<pagei.ID<<"n将被置换出的是页面"<<blockposition.ID<<endl;blockposition

17、= pagei; display(); 9实验结果1.主界面2.1产生的随机数2.LRU算法界面4. FIFO算法5. OPT算法3设计总结请求页式管理的基本原理是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页和块的大小相等,通过页表进行管理。页式系统的逻辑地址分为页号和页内位移量。页表包括页号和块号数据项,它们一一对应。根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就行成存储空间的物理地址。每个作业的逻辑地址空间是连续的,重定位到内存空间后就不一定连续了。3. 写出这三种页面置换算法的实现思想。FIFO算法总是淘汰最先调入主存的页面,即淘汰在主存中驻留时间

18、最长的页面,认为驻留时间最长的页不再使用的可能性较大。LRU算法淘汰的页面是最近一段时间内最久未被访问的那一页,它是基于程序局部性原理来考虑的,认为那些刚被使用过的页面可能还要立即被使用,而那些在较长时间内未被使用的页面可能不会立即使用。OPT算法,当要调入一页而必须淘汰旧页时,应该淘汰以后不再访问的页,或距现在最长时间后要访问的页面。4对不同算法的性能进行评价。FIFO算法较易实现,对具有线性顺序特征的程序比较适用,而对具有其他特征的程序则效率不高,此算法还可能出现抖动现象异常。LRU算法基于程序的局部性原理,所以适用用大多数程序,此算实现必须维护一个特殊的队列页面淘汰队列。OPT算法虽然产生的缺页数最少,然而,却需要预测程序的页面引用串,这是无法预知的,不可能对程序的运行过程做出精确的断言,不过此理论算法可用做衡量各种具体算法

温馨提示

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

评论

0/150

提交评论