模拟分页式虚拟存储地址转换和FIFO算法处理缺页中断_第1页
模拟分页式虚拟存储地址转换和FIFO算法处理缺页中断_第2页
模拟分页式虚拟存储地址转换和FIFO算法处理缺页中断_第3页
模拟分页式虚拟存储地址转换和FIFO算法处理缺页中断_第4页
全文预览已结束

下载本文档

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

文档简介

石家庄XX学院实习报告(学院)系:信息工程学院专业:计算机科学与技术姓名:XXX班级:专接本3班学号:51110903XXXX指导教师:XXX2012年6月20日操作系统课程实习报告学号:51110XXXXX姓名:XXX指导教师:XXX实习地点:实验室xxx实习题目:用先进先出〔FIFO〕页面调度算法处理缺页中断1实习内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。2实习目的在计算机系统中,为了提高主存利用率,往往把辅助存储器〔如磁盘〕作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种方法扩充的主存储器称为虚拟存储器。通过本实习帮助同学理解在分页式存储管理中怎样实现虚拟存储器。3实习步骤3.1需求分析这次实习是需求我们编写一个模拟分页式存储管理中如何实现虚拟存储〔计算物理地址〕以及如何利用先进先出算法〔FIFO〕处理缺页中断3.2数据结构设计与说明(1).分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式如表1。表1作业页表格式页号标志主存块号修改标志在磁盘上的位置主要数据结构设计 structplist//页表 { intnumber;//页号 boolflag;//标志 intblock_num;//块号 intmodify_flag;//修改标志 longdisk_addr;//在磁盘上的位置 };〔2〕.如果作业依次为执行的指令序列,作业执行指令序列表,格式如表2:structilist{ charoperation[10];//操作命令 intpage_num;//页号 intunit_num;//单元号};表2作业执行指令序列表格式操作命令页号单元号〔3〕实现模拟还需要的数据变量及详细解释如下intn,L,J,pflage,pmodify; intSize=128;//定义块的大小,本次模拟设为128个字节。 intp[4]={0,1,2,3};//定义数组模拟内存 intk=0;//初始指向第一个进入模拟内存的页 intM=4;//已经装入内存的页的数量 longphy_addr;//需要求的物理地址3.3算法设计功能:实现地址转换以及出现缺页中断后用FIFO算法进行页面置换本程序就包含一个主函数main〔〕程序开始先对页表以及指令表进行初始化,然后用if语句判断是否产生缺页中断,如果没有那么计算出物理地址,如果有那么利用FIFO算法处理缺页中断。FIFO页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时,把开始的m个页面装入主存,那么数组的元素可定为m个。例如:P[0],P[1]…,P[m-1]其中每一个P[i](I=0,1,…,m-1)表示一个在主存中的页面号。它们的初值为:P[0]:=0,P[1]:=1,…,P[m-1]:=m-1用一指针K指示当要装入新页时,应淘汰的页在数组中的位置,K的初值为“0”。当产生缺页中断后,操作系统选择P[k]所指出的页面调出,然后执行:P[k]:=要装入页的页号k:=(k+1)modm再由装入程序把要访问的一页信息装入到主存中。重新启动刚刚那条指令执行。为了提高系统效率,如果应淘汰的页在执行中没有修改正,那么可不必把该页调出〔因在磁盘上已有副本〕而直接装入一个新页将其覆盖。因此在页表中增加是否修改正的标志,为“1”表示修改正,为“0关键代码如下:if(pflage==0)//如果页面不在内存中那么产生缺页中断! { J=p[k]; pmodify=p1[J].modify_flag; if(pmodify==1) printf("\n产生缺页中断:IN:%d\n",J); else printf("\n产生缺页中断:OUT:%dIN:%d\n",L,J); p[k]=L; k=(k+1)%M; p1[L].flag=1; p1[L].block_num=p1[J].block_num; p1[J].block_num=-1; p1[J].flag=0; p1[J].modify_flag=0; }算法流程图如:图1所示图1模拟分页式虚拟存储地址转换和FIFO算法处理缺页中断4程序实现及运行结果分析4.1程序源代码代码参见文件夹OS1_2〔源代码所在的文件夹链接〕4.2程序运行结果图2页表和命令表初始化图图3模拟结果图5实习总结我们的题目是模拟分页式存储管理中硬件的地址转换和产生缺页中断,主要的思路和步骤就是根据流程图走下来的。在这个实验中由于所学的知识有限,为了理解在分页式存储管理中怎样实现虚拟存储器,做了很多知识准备工作,参考了相关书籍资料,对怎样产生和处理缺页中断有了一定的了解。在对题目深刻了解后我们就开始编程,在编程中我们遇到许多语法错误和语意错误,因此,在调试上运用了大量的时间。但最后在老师和同学的帮助下,问题都得到了解决,收获是很大的。而且我在编程是也掌握了不少编程技巧。并在这次的编写过程中,培养了团结合作的精神,大家分工合作,共同讨论,最终完成了这次设计。通过做本次实验,我们对分页式虚拟存储管理系统和缺页中断有了更深入的认识。在分页式虚拟存储系统中是把作业信息的副本存放在磁盘上。而在请求分

温馨提示

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

评论

0/150

提交评论