存储管理系统设计.docx
- 文档编号:23690435
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:18
- 大小:155.66KB
存储管理系统设计.docx
《存储管理系统设计.docx》由会员分享,可在线阅读,更多相关《存储管理系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
存储管理系统设计
湖南工业大学
课程设计
资料袋
计算机与通信学院学院(系、部)2013~2014学年第1学期
课程名称计算机操作系统指导教师左新娥职称讲师
学生姓名陈彦兵专业班级网络1101学号11408400108
题目存储管理系统设计
成绩起止日期2013年12月9日~2013年12月15日
目录清单
序号
材料名称
资料数量
备注
1
课程设计任务书
2
课程设计说明书
3
4
5
6
课程设计任务书
2013—2014学年第1学期
学院(系、部)计算机与通信学院专业网络工程班级111-2
课程名称:
计算机操作系统学生姓名:
陈彦兵
设计题目:
存储管理系统设计指导教师:
左新娥
完成期限:
自2013年12月9日至2013年12月15日共1周
内
容
及
任
务
一、设计内容
设计一个允许n个进程并发运行的进程管理模拟系统。
该系统包括有简单的进程控制、同步与通讯机构,其进程调度算法可以选择优先级调度,时间片轮转,短进程优先等。
每个进程用一个PCB表示,其内容根据具体情况设置。
各进程之间有一定的同步关系(可选)。
系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察进程的运行过程及系统的管理过程。
二、设计任务
课程设计说明书(纸质+电子版),内容包括:
设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。
)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。
三、设计要求
1.按功能要求开发系统,能正确运行。
程序代码书写规范,有充足的注释。
2.课程设计所使用的编程语言任选,但建议使用C或C++;
3.绿色软件:
程序运行不需安装,避免写系统与注册表;
进
度
安
排
起止日期
工作内容
课程设计前一周
召开动员大会,学生选题;
2013-12-9~2013-12-10
系统分析与设计;
2013-12-11~2013-11-13
熟悉软件开发工具、编码系统、系统测试以及中期答辩;
2013-12-14~2013-12-15
撰写并提交课程设计说明书(含电子文档)、源程序等。
主
要
参
考
资
料
[1]罗宇、邹鹏、邓胜兰等著.《操作系统》[M].北京:
电子工业出版社,2011
[2]AndrewS、Tanenbaum著.陈向群等译.《现代操作系统》[M].北京:
机械工业出版社,2007
[3]邓胜兰编著.《操作系统基础》[M].北京:
机械工业出版社,2009
[4]DaveProbert著,陈向群等译《Windows操作系统原理》[M].北京:
机械工业出版,2006
[5]罗宇褚瑞等等著.《操作系统课程设计》[M].北京:
机械工业出版,2004
指导教师(签字):
年月日
系(教研室)主任(签字):
年月日
课程设计说明书
课程名称:
计算机操作系统
设计题目:
存储管理系统设计
专业:
网络工程班级:
1101
学生姓名:
陈彦兵学号:
11408400108
指导教师:
左新娥
2012年12月7日
1课程设计简介
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系统流程图
就是
否
2、2结构体及先关数组的设计
1.主要结构体
用来存放物理块的大小以及页面就是否已经被访问。
structpageInfor
{
intID;//页面号
intvisit;//被访问标记
};/*页面逻辑结构,结构为方便算法实现设计*/
2、主要变量设计
#defineBsize3//物理块数
#definePsize20//页面块数
pageInfor*block;//物理块
pageInfor*page;//页面号串
2、3主要功能函数设计
1.给物理块赋初值
voidBlockClear()
{
for(inti=0;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< block=newpageInfor[Bsize]; BlockClear(); page=newpageInfor[Psize]; for(i=0;i { page[i]、ID=QString[i]; page[i]、visit=0; } } 3.查找就是否有空闲内存 intfindSpace() { for(inti=0;i if(block[i]、ID==-1) returni;//找到空闲内存,返回BLOCK中位置 return-1; } 4.查找内存中就是否有该页面 intfindExist(intcurpage) { for(inti=0;i if(block[i]、ID==page[curpage]、ID) returni;//找到内存中有该页面,返回BLOCK中位置 return-1; } 5.查找应予置换的页面 intfindReplace() { intpos=0; for(inti=0;i if(block[i]、visit>=block[pos]、visit) pos=i;//找到应予置换页面,返回BLOCK中位置 returnpos; } 6、FIFO算法 voidFIFO() { count=0; intexist,space,position; for(inti=0;i { exist=findExist(i); if(exist! =-1) { cout<<"即将访问的就是页面"< cout<<"内存中已存在该页"< } else { space=findSpace(); if(space! =-1) { block[space]=page[i]; display(); } else { position=findReplace(); cout<<"即将访问的就是页面"< block[position]=page[i]; display(); count++; } } for(intj=0;j block[j]、visit++;//BLOCK中所有页面visit++ } cout<<"\nFIFO算法的缺页率就是: "<<(float)count/20< } 7.LRU算法 voidLRU() { count=0; intexist,space,position; for(inti=0;i { exist=findExist(i); if(exist! =-1) { cout<<"即将访问的就是页面"< cout<<"内存中已存在该页"< block[exist]、visit=-1;//恢复存在的并刚访问过的BLOCK中页面visit为-1 } else { space=findSpace(); if(space! =-1) { block[space]=page[i]; display(); } else { position=findReplace(); cout<<"即将访问的就是页面"< block[position]=page[i]; display(); count++; } } for(intj=0;j { block[j]、visit++; } } cout<<"\nLRU算法的缺页率就是: "<<(float)count/20< } 8、OPT算法 voidOPT() { count=0; intexist,space,position; for(inti=0;i { exist=findExist(i); if(exist! =-1) { cout<<"即将访问的就是页面"< cout<<"内存中已存在该页"< } else { space=findSpace(); if(space! =-1) { block[space]=page[i]; display(); } else { for(intk=0;k for(intj=i;j { if(block[k]、ID! =page[j]、ID) { block[k]、visit=1000; } else { block[k]、visit=j; break; } } position=findReplace(); cout<<"即将访问的就是页面"< block[position]=page[i]; display(); } } } } 9.实验结果 1、主界面 2、1产生的随机数 2、LRU算法界面 4.FIFO算法 5.OPT算法 3设计总结 请求页式管理的基本原理就是将逻辑地址空间分成大小相同的页,将存储地址空间分块,页与块的大小相等,通过页表进行管理。 页式系统的逻辑地址分为页号与页内位移量。 页表包括页号与块号数据项,它们一一对应。 根据逻辑空间的页号,查找页表对应项找到对应的块号,块号乘以块长,加上位移量就行成存储空间的物理地址。 每个作业的逻辑地址空间就是连续的,重定位到内存空间后就不一定连续了。 3、写出这三种页面置换算法的实现思想。 FIFO算法总就是淘汰最先调入主存的页面,即淘汰在主存中驻留时间最长的页面,认为驻留时间最长的页不再使用的可能性较大。 LRU算法淘汰的页面就是最近一段时间内最久未被访问的那一页,它就是基于程序局部性原理来考虑的,认为那些刚被使用过的页面可能还要立即被使用,而那些在较长时间内未被使用的页面可能不会立即使用。 OPT算法,当要调入一页而必须淘汰旧页时,应该淘汰以后不再访问的页,或距现在最长时间后要访问的页面。 4.对不同算法的性能进行评价。 FIFO算法较易实现,对具有线性顺序特征的程序比较适用,而对具有其她特征的程序则效率不高,此算法还可能出现抖动现象异常。 LRU算法基于程序的局部性原理,所以适用用大多数程序,此算实现必须维护一个特殊的队列——页面淘汰队列。 OPT算法虽然产生的缺页数最少,然而,却需要预测程序的页面引用串,这就是无法预知的,不可能对程序的运行过程做出精确的断言,不过此理论算法可用做衡量各种具体算法的标准。 参考文献 [1]袁庆龙,候文义.Ni-P合金镀层组织形貌及显微硬度研究[J].太原理工大学学报,2001,32 (1): 51-53、(连续出版物: [序号]主要责任者.文献题名[J].刊名,出版年份,卷号(期号): 起止页码) [2] 刘国钧,王连成.图书馆史研究[M].北京: 高等教育出版社,1979: 15-18,31.(专著: [序号]主要责任者.文献题名[M].出版地: 出版者,出版年: 起止页码.) [3]孙品一.高校学报编辑工作现代化特征[C].中国高等学校自然科学学报研究会.科技编辑学论文集 (2).北京: 北京师范大学出版社,1998: 10-22.(论文集: [序号]主要责任者.文献题名[C]∥主编.论文集名.出版地: 出版者,出版年: 起止页码.)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 管理 系统 设计