模拟分页式虚拟存储管理中地址转换和缺页中断.doc_第1页
模拟分页式虚拟存储管理中地址转换和缺页中断.doc_第2页
模拟分页式虚拟存储管理中地址转换和缺页中断.doc_第3页
模拟分页式虚拟存储管理中地址转换和缺页中断.doc_第4页
模拟分页式虚拟存储管理中地址转换和缺页中断.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

合肥学院计算机科学与技术系实验报告2009 2010 学年第 一 学期课程 操作系统原理实验名称模拟分页式存储管理中硬件的地址转换和产生缺页中断学生姓名方岚 王庆红 王兆娟 何佳丽专业班级07计本(1)指导教师屠 菁2009 年 11 月一、实验目的在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。通过这次实习理解在分页式存储管理中怎样实现虚拟存储器。深入了解分页式存储管理如何实现地址转换,进一步认识分页式虚拟存储管理中如何处理缺页中断。二、实验内容编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数对所作工作进程测试。假定主存64KB,每个主存块1024字节,作业最大支持到64KB,系统中每个作业分得主存块4块。三、实验步骤1. 概要设计分页式存储管理中地址转换过程很简单,假定主存块的大小为2n字节,主存大小为2m字节和逻辑地址m位,则进行地址转换时,首先从逻辑地址中的高m-n位中取得页号,然后根据页号查页表,得到块号,并将块号放入物理地址的高m-n位,最后从逻辑地址中取得低n位放入物理地址的低n位就得到了物理地址,过程如图1所示。页 号 页内地址块 号 块内地址页号 块号物理地址逻辑地址m n n-1 0m n n-1 0图1 页式存储管理系统地址转换示意图地址转换是由硬件完成的,实验中使用软件程序模拟地址转换过程,模拟地址转换的流程图如图2.7所示(实验中假定主存64KB,每个主存块1024字节,即n=10,m=16,物理地址中块号6位、块内地址10位;作业最大64KB,即m=16,逻辑地址中页号6位、页内地址10位)。在分页式虚拟存储管理方式中,作业信息作为副本放在磁盘上,作业执行时仅把作业信息的部分页面装入主存储器,作业执行时若访问的页面在主存中,则按上述方式进行地址转换,若访问的页面不在主存中,则产生一个“缺页中断”,由操作系统把当前所需的页面装入主存储器后,再次执行时才可以按上述方法进行地址转换。页式虚拟存储管理方式中页表除页号和该页对应的主存块号外,至少还要包括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志(该页是否修改过)。缺页处理过程简单阐述如下: 根据当前执行指令中逻辑地址中的页号查页表,判断该页是否在主存储器中,若该页标志为“0”,形成缺页中断。中断装置通过交换PSW让操作系统的中断处理程序占用处理器; 操作系统处理缺页中断的方法就是查主存分配表,找一个空闲主存块;若无空闲块,查页表,选择一个已在主存的页面,把它暂时调出主存。若在执行过程中该页被修改过,则需将该页信息写回磁盘,否则不必写回; 找出该页的磁盘位置,启动磁盘读出该页信息,把磁盘上读出的信息装入第2步找到的主存块,修改页表中该页的标志为“1”; 由于产生缺页中断的那条指令没有执行完,所以页面装入后应重新执行被中断的指令。当重新执行该指令时,由于要访问的页面已在主存中,所以可正常执行。关于第步的查找装入新页面的主存块的处理方式,不同系统采用的策略可能有所不同,这里采用局部置换算法,就是每个作业分得一定的主存块,只能在分得的主存块内查找空闲块,若无空闲主存块,则从该作业中选择一个页面淘汰出主存。2. 详细设计(1).分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式如表1: 表1 作业页表格式页号 标志主存块号在磁盘上的位置主要数据结构设计struct info /页表 bool flag; 标志 /用来表示对应页是否已经装入主存,标志位1,则表示页已经在主存,标志位0,则表示该页尚未装入主存。long block; 主存块号 /用来表示已经装入主存的页所站的块号long disk; 磁盘位置即磁盘块号/用来指出作业副本的每一页被存放在磁盘上的位置 pagelistSizeOfPage; /定义结构体 用来存储页表信息 (2).作业执行时,指令中的逻辑地址指出了参加运算的操作数存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,根据关系式: 绝对地址块号块长单元号计算出欲访问的主存单元地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(3).设计一个“地址转换”函数work_ex()来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址。当访问的页不在主存时,则输出“*该页页号”,表示产生了一次缺页中断。(4).假定主存的每块长度为128字节;现有一个共七页的作业,在函数init_ex()中对页表初始化,将第0页到第3页中的内容装入主存中,其余三页未装入主存;该作业的页表如表2: 表2 主存中页表格式015011118012219013311021400225002360121如果作业依次为执行的指令序列,作业执行指令序列表,如表3: 表3 作业执行指令序列表操作页号单元号操作页号单元号0070移位4053105050232015存1037存3021取2 078取0056+40016040存6084(5).在主函数int main()中调用函数work_ex()和函数init_ex(),实现地址的转换和产生缺页中断。3. 算法设计函数名 int main() 功能 实现地址转换。流程图如:图2所示否是结束取下一条指令有后继指令?是输出绝对地址形成绝对地址否输出“*”页号表示发生缺页中断该页标志1?查页表取指令中访问的页号取一条指令开 始图2 地址转换的主程序流程图4.结果显示:地址转换在主存,输出绝对地址;不在,输出*。如图2所示: 图2 地址转换 4、 参考资料:计算机操作系统汤子瀛 哲凤屏 汤小丹 编著 西安电子科技大学出版社C+程序设计 吴乃陵 李海文 编著 高等教育出版社C语言程序设计 谭浩强 编著 清华大学出版社五、实验总结我们的题目是模拟分页式存储管理中硬件的地址转换和产生缺页中断,主要的思路和步骤就是根据流程图走下来的。在这个实验中由于所学的知识有限,为了理解在分页式存储管理中怎样实现虚拟存储器,做了很多知识准备工作,参考了相关书籍资料,对怎样产生和处理缺页中断有了一定的了解。在对题目深刻了解后我们就开始编程,在编程中我们遇到许多语法错误和语意错误,因此,在调试上运用了大量的时间。但最后在老师和同学的帮助下,问题都得到了解决,收获是很大的。而且我在编程是也掌握了不少编程技巧。并在这次的编写过程中,培养了团结合作的精神,大家分工合作,共同讨论,最终完成了这次设计。通过做本次实验,我们对分页式虚拟存储管理系统和缺页中断有了更深入的认识。在分页式虚拟存储系统中是把作业信息的副本存放在磁盘上。而在请求分页系统中,每当所要访问的页面不在内存时,便产生一次缺页中断,请求OS将所缺之页调入内存。本次实验即是做模拟分页式存储管理中硬件的地址转换和缺页中断。通过编写模拟硬件的地址转换工作的程序,不仅加深了我们对绝对地址如何转换的理解,同时也锻炼了我们的编程能力。6、 附录#include #include #define SizeOfPage 100#define SizeOfBlock 128#define M 4struct info/页表bool flag; /标志long block;/块号long disk;/在磁盘上的位置pagelistSizeOfPage;long PM;void init_ex() /把页表初始化pagelist0.flag=1;pagelist0.block=5;pagelist0.disk=011;pagelist1.flag=1;pagelist1.block=8;pagelist1.disk=012;pagelist2.flag=1;pagelist2.block=9;pagelist2.disk=013;pagelist3.flag=1;pagelist3.block=1;pagelist3.disk=021;pagelist4.flag=0;pagelist4.disk=022;pagelist5.flag=0;pagelist5.disk=023;pagelist6.flag=0;pagelist6.disk=121;void work_ex() bool stop=0; /stop=1,结束程序;stop=0,继续程序long p,q;char s128;doprintf(请输入指令的页号和单元号:n);if(scanf(%ld%ld,&p,&q)!=2) /输入的数不是两个数scanf(%s,s);

温馨提示

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

评论

0/150

提交评论