操作系统设计技巧.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理 课程设计 课程名称: 模拟请求分页存储管理方式中的 地址转换和缺页中断 专业班级: 组 长: 成 员: 指导教师: 2012 / 2013 学年 第 1 学期 目录 设计题目 3 设计简介 3 设计目标 3 设计步骤 3 1.设计概要 3 2.详细设计 4 3.程序流程图 6 程序截图 6 设计总结 7 参考文献 8 程序代码 8 设计题目 《模拟请求分页存储管理方式中的地址转换和缺页中断》 设计简介 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。通过这次实习理解在分页式存储管理中怎样实现虚拟存储器。了解分页式存储管理如何实现地址转换,认识分页式虚拟存储管理中如何处理缺页中断。 设计目标 程序完成了请求分页存储管理中地址转换过程和模拟缺页中断的处理。实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数。 假定主存8KB,每个主存块2048字节,作业为16KB,系统中每个作业分得主存块3块。 设计步骤 1.设计概要 地址转换:假定主存块的大小为2n字节,主存大小为2m字节和逻辑地址m位,则进行地址转换时,首先从逻辑地址中的高m-n位中取得页号,然后根据页号查页表,得到块号,并将块号放入物理地址的高m-n位,最后从逻辑地址中取得低n位放入物理地址的低n位就得到了物理地址。如下图: 在分页式虚拟存储管理方式中,作业信息作为副本放在磁盘上,作业执行时仅把作业信息的部分页面装入主存储器,作业执行时若访问的页面在主存中,则按上述方式进行地址转换,若访问的页面不在主存中,则产生一个“缺页中断”,由操作系统把当前所需的页面装入主存储器后,再次执行时才可以按上述方法进行地址转换。页式虚拟存储管理方式中页表除页号和该页对应的主存块号外,至少还要包括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志(该页是否修改过)。 缺页中断: ① 根据当前执行指令中逻辑地址中的页号查页表,判断该页是否在主存储器中,若该页标志为“0”,形成缺页中断。 ② 操作系统处理缺页中断的方法就是查主存分配表,找一个空闲主存块;若无空闲块,查页表,选择一个已在主存的页面,把它暂时调出主存。若在执行过程中该页被修改过,则需将该页信息写回磁盘,否则不必写回; ③ 找出该页的磁盘位置,启动磁盘读出该页信息,把磁盘上读出的信息装入第2步找到的主存块,修改页表中该页的标志为“1”; ④ 由于产生缺页中断的那条指令没有执行完,所以页面装入后应重新执行被中断的指令。当重新执行该指令时,由于要访问的页面已在主存中,所以可正常执行。 本程序采用了简单的先进先出的页面置换算法。 2.详细设计 页表机制: 页号 物理块号 状态位 修改位 外存地址 状态位:用于指示该页是否调入内存,供程序访问是参考。 修改位:表示该页在调入内存后是否被修改过。由于内存中的每一页都在外存上保留一份副本,因此,若未被修改,在置换该页的时候就不需要再将该页写回到外存上,以减少系统的开销和启动磁盘的次数;若已被修改,则必须将该页重新写回到外存上,以保证外存中所保留的始终是最新副本。 外存地址:用于指出该页在外存上的地址。 定义页表 struct { int page_num; //页号 int flag; //状态位 1表示在内存中,0表示不在内存中 int block_num; //物理块号 int write; //修改位 1表示修改,0表示不修改。 int out_num; //磁盘地址 }page[6]; //改程序初始页表大小为6页 页表初始化截图: 程序要求输入作业进程块的逻辑地址和此进程块是否在调入内存中执行的时候需要修改。程序会计算出此逻辑地址的页号,判断该页号是否在内存中,如果在,则程序输出该页的物理地址。如果不在内存中,则启动缺页中断程序,置换出内存中的一页,换入需要的页面。输出此时的页表和该页的物理地址。 3.程序流程图 程序截图 (1)不发生缺页中断: 输入:0 2014 (2)发生缺页中断 输入1 4000 ( 3 )程序结束 输入-1 -1 设计总结 我们的题目是模拟分页式存储管理中硬件的地址转换和产生缺页中断做了很多知识准备工作,参考了相关书籍资料,对有了了解收获很大。而且我在编程是也掌握了不少编程技巧。

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档