《存储管理系统设计》由会员分享,可在线阅读,更多相关《存储管理系统设计(19页珍藏版)》请在金锄头文库上搜索。
1、工业大学课程设计资料袋计算机与通信学院学院(系、部)2013 2014 学年第 1 学期课程名称计算机操作系统指导教师左新娥 职称 讲师学生彦兵专业班级网络1101学号 _题目存储管理系统设计成绩起止日期 2013 年12月_9_日 2013年12月日目 录清单序号材料名称资料数量备注1课程设计任务书2课程设计说明书3456闲龙,孑课程设计任务书2013 2014学年第1学期学院(系、部)计算机与通信学院专业网络工程班级 111-2课程名称: 计算机操作系统学生:彦兵设计题目:存储管理系统设计指导教师:左新娥完成期限:自 2013年 12月 9 日至 2013年 12月 15 日共 1 周容
2、及 任 务劇W; 豺及 分 络/ 匕匕t、b 厶冃 ,其妒 功E 构乩钏 及3a h P肌 沂製 步 打 扮謬 同 或 你蛀 餅个缠 林喰 圉一膨 分册 刍一 进 厶,一 可 月 0 餌等铳程 :、 陀+; 统先举过 析地 C 蒜能訓统価靖 有或 该畑卸站 花仙m帥C叶 烏(W曲俗J 拟转 及 卅、体 厢阴讶 模轮 程 设/ 唯瑕施 mi 一 丄寸一In汪! 理尸另匸 :下訂 管间-行 括济问 禾玖昨 程时步运 包、的 -ro仁晚 出,同的 容图到 行,避 戊、一支竹郢 匡團 运选 rs 一十3厶 二 / 尺- ? -尸 - 、A- 、rX fB周定进 能 / 确任装 步|一r版功价 正亠B安
3、 奴先有观 子体评 能语需 刖优司馬 电整 ,程不 举-机 电 芽,廉:作 0 小 - - 源工系M MM唯械也 讽机操少 译 - -r础纟系 1.基羊乍 t:t1代著 邓nn著等 、 間上3rt寧 鹏汀躇泌瑞 邹WS3pro褚 宇 胜vv宇 卄An邓DD罗 - - - - - - - - - 1 2 3 4 5 - - - - -指导教师(签字): 年 月 日系(教研室)主任(签字):课程设计说明书课程名称: 计算机操作系统设计题目:存储管理系统设计专 业:网络工程班级:1101学生: 彦兵学 号:指导教师:左新娥2012年 12月 7日目录1课程设计简介61.1实验目的61.2课程设计容6
4、2课程设计实现过程72.1系统流程图72.2结构体及先关数组的设计 82.3主要功能函数设计81.给物理块赋初值 82初始化页面并产生一组随机数 83. 查找是否有空闲存 94. 查找存中是否有该页面 95. 查找应予置换的页面 93设计总结17参考文献181课程设计简介1.1实验目的通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特 点,掌握请求页式存储管理的页面置换算法。1.2课程设计容1. 通过随机数产生一个指令序列,共320条指令,指令的地址按下述原则生 产:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分。2. 将指令序列
5、变换成为页地址流,设页面大小为 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思路设计一个类,把页面存储管理系统分成各个模
6、块,把不同的功能进行封装。实现程序设计的安全易移植性。把各个分页算法分装在类的功能函数中。2.1系统流程图2课程设计实现过程开始最佳置换算法产生一组随机 数选择页面置换速发运行结束是否接着运行程序结束最久未使用2.2结构体及先关数组的设计1.主要结构体用来存放物理块的大小以及页面是否已经被访问struct page Inforint ID;/ 页面号int visit;/被访问标记; /*页面逻辑结构,结构为方便算法实现设计*/物理块页面号串物理块数 页面块数2.主要变量设计#defi ne Bsize 3#defi ne Psize 20 page Infor * block;/ page
7、Infor * page;/2.3主要功能函数设计1.给物理块赋初值void BlockClear()for(int i=0; ivBsize; i+)blocki.ID = -1; blocki.visit = 0;2 .初始化页面并产生一组随机数void ini tal()int QStringPsize=0;sran d(time(0);for(int i=0;i20;i+)QStri ngi=ra nd()%10; prin tf(%d,QStri ngi);coute ndl;block = new page In forBsize;BlockClear();page = new p
8、age In forPsize;for(i=0; iPsize; i+)pagei.ID = QStri ngi;pagei.visit = 0;3 .查找是否有空闲存int fin dSpace()for(int i=0; iBsize; i+)if(blocki.ID = -1)return i;找到空闲存,返回BLOCK中位置return -1;4 .查找存中是否有该页面int fin dExist(i nt curpage)for(int i=0; iBsize; i+)if(blocki.ID = pagecurpage.ID)return i;/找到存中有该页面,返回 BLOCK中
9、位置return -1;5. 查找应予置换的页面int fin dReplace()int pos = 0;for(int i=0; i= blockpos.visit)pos = i;/找到应予置换页面,返回BLOCK中位置retur n pos;6. FIFO算法void FIFO()coun t=0;int exist,space,positi on ;for(int i=0; ivPsize; i+)exist = fin dExist(i);if(exist != -1)cout即将访问的是页面vvpagei.IDvendl; cout存中已存在该页endl;elsespace =
10、fin dSpace();if(space != -1)blockspace = pagei;display();elsepositi on = fin dReplace();coutvv即将访问的是页面vvpageiDvvn将被置换出的是页面blockposition.IDendl;blockpositi on = pagei;display();coun t+;for(i nt j=0; jvBsize; j+)blockj.visit+;/BLOCK中所有页面 visit+coutnFIFO 算法的缺页率是:(float)count/20endl;7. LRU算法void LRU()co
11、un t=0;int exist,space,positi on ;exist = fin dExist(i);if(exist != -1)cout即将访问的是页面vvpageiDvendl;cout存中已存在该页endl;blockexist.visit= -1;/ 恢复存在的 并刚访 问过的BLOC!中页面visit为-1elsespace = fin dSpace();if(space != -1)blockspace = pagei;display();elsepositi on = fin dReplace();coutvv即将访问的是页面vvpageiDvvn将被置换出的是页面b
12、lockposition.IDendl;blockpositi on = pagei;display();coun t+;for(i nt j=0; jvBsize; j+)blockj.visit+;coutn LRU 算法 的缺页率是: (float)cou nt/20e ndl;8.OPT算法void OPT()coun t=0;int exist,space,positi on ;exist = fin dExist(i);if(exist != -1)cout即将访问的是页面vvpagei.IDvendl;cout存中已存在该页endl;elsespace = fin dSpace();if(space != -1)blockspace = pagei;display();elsefor(int k=0; kvBsize; k+)for