




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与应用系课程设计报告操作系统原理姓名徐光辉学号111096135指导教师齐艳科专业计算机科学与技术日期2012年5月25日成 绩题目1. 请求调页存储管理2. bochs虚拟机、minix操作系统的安装、运行及退出指导教师评语题目一:请求调页存储管理一、实验目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解。二、实验内容1假设每个页面中可存放10条指令,分配给作业的内存块数为4。2用c语言或c+语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一条指令。在所有320指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。3置换算法:请分别考虑最佳置换算法(opt)、先进先出(fifo)算法和最近最久未使用(lru)算法。4作业中指令的访问次序按下述原则生成;50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令均匀分布在后地址部分。具体的实现办法是:(1)在0,319之间随机选取一条起始执行指令,其序号为m;(2)顺序执行下一条指令,其序号为m+1条指令;(3)通过随机数,跳转到前地址部分0,m-1中的某条指令处,其序号为m1;(4)顺序执行下一条指令,即序号为m1+1的指令;(5)通过随机数,跳转到后地址部分m1+2,319中的某条指令处,其序号为m2;(6)顺序执行下一条指令,则序号为m2+1的指令;(7)重复跳转到前地址部分,顺序执行,跳转到后地址部分;顺序执行的过程,直至执行320条指令。三、程序代码#include #include#include#include#define bsize 4typedef struct block/声明一种新类型物理块类型 int pagenum;/页号int accessed;/访问字段,其值表示多久未被访问block;int pc;/程序计数器,用来记录指令的序号int n;/缺页计数器,用来记录缺页的次数static int temp320;/用来存储320条随机数block blockbsize; /定义一大小为4的物理块数组/*void init(); /程序初始化函数int findexist(int curpage);/查找物理块中是否有该页面int findspace();/查找是否有空闲物理块int findreplace();/查找应予置换的页面void display();/显示void suijishu();/产生320条随机数,显示并存储到temp320void pagestring();/显示调用的页面队列void opt();/opt算法/-void init() for(int i=0;ibsize;i+) blocki.pagenum=-1; blocki.accessed=0; pc=n=0; /-int findexist(int curpage) for(int i=0; ibsize; i+)if(blocki.pagenum = curpage ) return i;/检测到内存中有该页面,返回block中的位置 return -1;/-int findspace() for(int i=0; ibsize; i+) if(blocki.pagenum = -1) return i;/找到空闲的block,返回block中的位置 return -1;/-int findreplace() int pos = 0; for(int i=0; iblockpos.accessed) pos = i;/找到应予置换页面,返回block中位置 return pos;/-void display() for(int i=0; ibsize; i+) if(blocki.pagenum != -1) printf( %02d,blocki.pagenum); coutpc; cout*按照要求产生的320个随机数:*endl; for(int i=0;i320;i+) tempi=pc;if(flag%2=0) pc=+pc%320; if(flag=1) pc=rand()% (pc-1); if(flag=3) pc=pc+1+(rand()%(320-(pc+1); flag=+flag%4;printf( %03d,tempi); if(i+1)%10=0) coutendl; /-void pagestring() for(int i=0;i320;i+) printf( %02d,tempi/10); if(i+1)%10=0) coutendl;/-void opt()int exist,space,position ;int curpage; for(int i=0;i320;i+) /if(i%100=0) getch();pc=tempi; curpage=pc/10; exist = findexist(curpage); if(exist=-1)space = findspace(); if(space != -1)blockspace.pagenum = curpage; display(); n=n+1; elsefor(int k=0;kbsize;k+)for(int j=i;j320;j+)if(blockk.pagenum!= tempj/10) blockk.accessed = 1000; /将来不会用,设置为一个很大数 elseblockk.accessed = j;break; position = findreplace(); blockposition.pagenum = curpage; display(); n+;cout缺页次数:nendl;cout缺页率:(n/320.0)*100%endl;/-void main() int select; cout请输入第一条指令号(0320):; suijishu(); cout*对应的调用页面队列*endl; pagestring(); cout最佳置换算法opt:endl; cout*endl; opt(); 四、实验结果程序运行结果如下图所示:图1:结果图(1)图2:结果图(2)图3:结果图(3)图4:结果图(4)图5:结果图(5)图6:结果图(6)五、思考题1如果增加分配给作业的内存块数,将会对作业运行过程中的缺页率产生什么影响?块数算法4块5块6块7块8块opt36.87534.0625%31.25%29.0625%27.1875%fifo48.437545.9375%44.375%43.4375%42.1875%lru47.812545.3125%42.5%41.25%40.625%答:上表为在以第88条指令为首指令,分配物理块为4、5、6、7、8时的运行结果。由运行结果可得知,增加作业的内存块数,可以降低缺页率,对于不同的算法,增加物理块数都能降低缺页率,只是效果有所不同。2为什么一般情况下,lru具有比fifo更好的性能?答:fifo置换算法设计简单,容易理解。但它的效率并不是总能达到令人满意的效果。这种算法只有在顺序访问地址空间时才能达到理想效果,但根据程序的局部性原理,那些常被访问的页面,往往要在主存中停留得最久,fifo算法却将会将其换出页面,留下的只是一些新调入的指令,这将导致内存频繁换页。而lru则选择在最近一段时间里最久没有使用过的页面予以置换,lru算法是与每个页面最后使用的时间有关的。当必须置换一个页面时,lru算法选择过去一段时间里最久未被使用的页面。这种算法以“最近的过去”作为“最近的将来”的近似,较好地利用了程序的局部性原理。一般情况下,能取得较好的效果,是经常采用的页面置换算法。题目二: minix操作系统的安装、运行及退出一、实验目的阅读并理解bochs虚拟机的基本概念,成功安装bochs虚拟机。阅读minix操作系统相关技术资料,理解minix操作系统的安装过程和minix操作系统的模块结构,实现minix操作系统的运行;二、实验内容步骤一、在地址下载bochs-2.0.2虚拟机软件bochs-2.0.2.win32-bin.zip,大小为2.55mb,bochs虚拟机软件解压缩后即完成安装,在bochs解压缩目录下,bochs.exe是虚拟机可执行文件;将其安装在d:bochs-2.0.2目录下(安装目录可以是任意硬盘分区,本处为d盘分区)。步骤二、下载minix操作系统镜像minix204.zip,大小为6.84mb,并用winrar解压缩软件解压缩镜像文件,将镜像文件复制到d:bochs-2.0.2minix204目录下;步骤三、配置minix操作系统的启动文件d:bochs-2.0.2minix204run.bat,配置内容如下:#设置bxshare环境变量set bxshare=d:bochs-2.0.2#将当前目录换到d:bochs-2.0.2minix204cd d:bochs-2.0.2minix204#使用当前目录下的minix.bxrc配置文件运行bochs.bochs -q -f minix.bxrc步骤四、在c:bochs-2.0.2minix204目录下配置minix操作系统硬件配置文件minix.bxrc,配置内容如下:megs: 40romimage: file=$bxshare/bios-bochs-latest, address=0xf0000vgaromimage: $bxshare/vgabios-elpin-2.40ata0-master: type=disk, path=minix.img, cylinders=200, heads=16, spt=32log: bochsout.txtpanic: action=askerror: action=reportinfo: action=reportdebug: action=ignoreips: 1000000mouse: enabled=0user_shortcut: keys=ctrlaltdelboot: diskfloppya: 1_44=vfloppya.img, status=insertedata0-slave: type=cdrom, path=d:, status=inserted步骤五、在d:bochs-2.0.2minix204目录下,双击run.bat,运行minix操作系统;步骤六、在/usr/src目录下,存放着minix操作系统的源代码,其大小约为12mb。minix操作系统源码包含以下几个模块,应大致了解一下。步骤七、退出,点击bochs上的poweroff按钮即可退出。3、 实验结果1、双击bochs-2.0.2.exe,即进入如下图3-2-1所示的安装页面图3-2-12、点击i agree,进入下面的页面,如图3-2-2所示:图3-2-23、点击next,进入如下页面,如图3-2-3所示:图3-2-34、点击install,即开始安装,如下图3-2-4所示:图3-2-41、点击close后,bochs虚拟机即安装成功,可以在开始菜单中看到,如图3-2-5所示:图3-2-52、minix操作系统的安装完成后,双击run.bat,可以运行minix操作系统;弹出如下两个窗口,如图3-2-6所示:图3-2-6 3、选择单机版启动minix,即在上图中输入“=”,系统随即提示输入用户名,输入“root”后即可开始输入各种命令,进行相应操作了。如需突出系统,单击右上角的power即可。图3-2-7课程设计总结本次课程设计我的第一个实验的主要目的是完成请求调页存储管理方式的模拟,通过对页面、页表、地址转换和页面置换过程的模拟,让我对请求调页的几种算法有了进一步的认识。并且懂得了有时候增加内存块的数量,并不一定会减少系统的缺页次数和缺页率。从中学到了很多以前并没有真正学会的知识。通过这次操作系统课程设计的第二个实验,bochs虚拟机和minix系统的安装。让我在一定程度上加深了对操作系统概念的理解,即:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考语文试题及答案
- 大一运动生理学期末试卷及答案
- 大连湾期中考试卷及答案
- 初中生物网课试卷及答案
- 2025年苏教版五年级下册道德与法治教学计划
- 小学六年级第二学期心理健康教育计划
- 高三英语二轮复习计划:提升听说读写能力
- 西港中学音乐社团活动计划
- 2025版高考语文一轮复习全程训练计划天天练5成语一基础专练含解析
- 2025年青少年文化交流活动工作总结与计划
- (新版)网络攻防知识考试题库(含答案)
- NPT5空气压缩机检修
- 分部工程质量验收记录
- Q∕SY 13123-2017 物资仓储技术规范
- 合肥市不动产登记申请审批表-版本
- 防洪度汛检查表
- 手术通知单模板
- 招商合同范本4篇-合同范本
- 《西方音乐史》课件伯辽兹
- 关于互联网金融对商业银行风险影响的实证研究会计学专业
- 十八项电网重大反事故措施
评论
0/150
提交评论