资源描述:
《模拟分页式存储管理中硬件的地址转换和产生缺页中断.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、合肥学院计算机科学与技术系实验报告2011~2012学年第一学期课程操作系统原理课程设计名称模拟分页式存储管理中硬件的地址转换和产生缺页中断学生姓名学号专业班级10计本(2)班指导教师2011年11月1.实验目的:通过实验模拟分页式存储管理中硬件的地址转换和产生缺页中断帮助理解在分页式存储管理中怎样虚拟存储器。2.实验内容:分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换
2、机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式:绝对地址=块号×块长+单元号计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。3.实验步骤:任务分析:(1)分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动
3、执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:页号标志主存块号在磁盘上的位置其中,标志----用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。主存块号----用来表示已经装入主存的页所占的块号。在磁盘上的位置----用来指出作业副本的每一页被存放在磁盘上的位置。(2)作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根
4、据关系式:绝对地址=块号×块长+单元号计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(30设计一个“地址转换”程序来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“*该页页号”
5、,表示产生了一次缺页中断。(4)假定主存的每块长度为128个字节;现有一个共七页的作业,其中第0页至第3页已经装入主存,其余三页尚未装入主存;该作业的页表为:(1)概要设计:定义页表结构体typedefstruct{页号、标志、主存块号、在磁盘存储位置}table用以存放页表的数据结构信息,定义一个操作表数据结构typedefstruct{操作、页号、单元号}list;用以存放输入的操作指令,当输入操作指令时,通过操作表中的页号访问页表,查看页表的标志位flag是否为1,若flag=1,则表示在内存通过绝对地
6、址=块号×块长+单元号模拟出硬件的地址转换工作,若flag=0,则表示不再内存,产生一次缺页中断输出“*该页页号”,表示产生了一次缺页中断。主函数main()用以实现指令的输出和地址的转换工作。(2)流程图如下:读入一个造作指令开始开始开始页号<7页面超出是否在内存内存计算物理地址If<12结束缺页中断否是是否是否(3)详细设计:typedefstruct//页表定义{intpagenum;//页号intflag;//标志intblock;//主存块号intlocation;磁盘上的位置}table;存储页表
7、信息typedefstruct//操作表定义{charope[10];//操作intpagenum;//页号intaddress;//单元号}list;tablep1[7]={{0,1,5,11},{1,1,8,12},{2,1,9,13},{3,1,1,21},{4,0,NULL,22},{5,0,NULL,23},{6,0,NULL,121}};模拟输入页表信息,期中0,1,2,3,表示存入内存,4,5,6,表示未装入内存。Main主函数的实现如下{定义一个数组p2[N]用以存储输入的指令用for(i=0
8、;i