- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北大操作系统nachos实习报告——第三部分内存系统实习
操作系统实习三(虚拟内存管理)马亮 1001210767目录内容一:总体概述3内容二:任务完成情况3任务完成列表(Y/N)3具体Exercise的完成情况3内容三:遇到的困难以及解决方法13内容四:收获及感想13内容五:对课程的意见和建议13内容六:参考文献14内容一:总体概述通过本次实习,搞清了Nachos中虚拟内存部分的实现原理,通过实现TLB和页表的页面置换算法,修改系统为多线程驻留内存并实现lazy loading,进一步理解了操作系统实现虚拟内存的原理。并且本次实习过程中遇到大量错误,在解决错误的过程中进一步学习巩固了C++。内容二:任务完成情况任务完成列表(Y/N)Exercise1Exercise2Exercise3Exercise4Exercise5Exercise6第一周YYY第二周YYY第三周Y第四周YNN具体Exercise的完成情况第一周Exercise1 源代码阅读machine.h和machine.cc阅读这两个程序实现了执行用户程序的虚拟机,machine.h中将内存页大小定义为和磁盘扇区大小相同的128B,总共有32个页,通过一个char数组来模拟内存,内存总大小为32*128字节,通过一个40个长度的int数组来模拟40个寄存器。声明了TranslationEntry类型的tlb和pageTable作为快表和页表。Machine.cc中在构造函数中对寄存器和内存做了清零,RaiseException用来发出异常,包括系统调用、page fault等异常,调用exception.cc的ExceptionHandler方法来处理,还有一些读写寄存器、打印寄存器状态等方法。translate.h和translate.cc阅读translate.h中定义了快表项和页表项的结构TranslationEntry类translate.cc中ReadMem (int addr, int size, int *value)方法调用translate方法,将用户虚拟地址addr转换为物理地址,读出 size 个字节,存放在 value 所指向的空间中。WriteMem (int addr, int size, int *value) 方法调用translate方法,将用户虚拟地址addr转换为物理地址,然后将 value 表示的数值根据 size 大小转换成相应的机器类型存放在此物理地址中。Translate (int virtAddr, int *physAddr, int size, bool writing) 方法将用户的逻辑地址转换成实际的物理地址,同时需要检查对齐。 首先,判断用户逻辑地址是否对齐,没有对齐则返回 AddressErrorException。接着计算出虚拟地址所在的页号 vpn 及其在页面中的偏移量,根据采用不同的转换方法作不同的处理。如果采用的是线性转换表,当 vpn=pageTableSize 时, 即虚拟页数过大,返回 AddressErrorException。当页表中显示该页为无效时,返回 PageFaultException,一切正常则得到相应的页表表项。如果采用的是 TLB 转换表,查找 TLB 表,如果查找到,得到相应的页表项;如果没有查找到,返回 PageFaultException。如果得到的页表项是只读,设置writing 标志,返回 ReadOnlyException,如果表项中相应的物理地址大于实际的内存物理地址,返回 BusErrorException,都正常则返回NoException。Exercise2 修改exception.cc使得 Nachos 系统可以对 TLB 异常进行处理首先在machine.h中ExceptionType中增加一种异常TlbFaultException:然后在exception.cc中加入这种异常的处理方法:具体的TlbSwap页面置换算法见下一个exercise的说明Exercise3 为TLB机制实现一种合适的页面替换算法基本思想是利用系统中的totalTicks作为时间戳,每次使用到tlb中的一页时更新此页的时间戳为当前的totalTicks,需要淘汰一页的时候选取时间戳最早的那页,即LRU算法。由于nachos中原有的页表实现方法为线性页表,如果define了USE_TLB,则在machine类构造函数中初始化了tlb,故首先启用tlb。在translate.cc的ReadMem和WriteMem方法中,调用了translate方法来将虚拟地址转换为物理地址,而translate方法中如果定义了TLB,则会在TLB中寻找此页,如果找不到则发出PageFaultException异常。首先在TranslationEntr
您可能关注的文档
- 化学史第十一章核化学和无机化学的发展.doc
- 化学同步练习题考试题试卷教案第八章__酸、碱、盐.doc
- 化学反应原理模块解读和模块整体备课从课标到教材到.doc
- 化学品管理网站.ppt
- 化学史第十二章仪器分析的产生和发展.doc
- 化学工业技术经济学.ppt
- 化学实验的基本操作 课件.ppt
- 化学必修第一章练习题.doc
- 化学检验工多选题.doc
- 化学学院专业选修课程简介.doc
- 2025-2030年中国头壳喷漆项目投资可行性研究分析报告.docx
- 2025-2030年中国油气开发项目投资可行性研究分析报告.docx
- 媒体新纪元:数字化进化-掌握新技术,引领未来新闻传播.pptx
- 2025-2030年中国多通道音频接口行业深度研究分析报告.docx
- 2025-2030年中国空顶沙滩帽子行业深度研究分析报告.docx
- 2025-2030年中国药用附料项目投资可行性研究分析报告.docx
- 2025-2030年中国硬齿面柱齿轮减速机行业深度研究分析报告.docx
- 2025-2030年中国空压机安全阀项目投资可行性研究分析报告.docx
- 2025-2030年中国锭子传动筒项目投资可行性研究分析报告.docx
- 2025-2030年中国排气洁净器项目投资可行性研究分析报告.docx
最近下载
- 育才三中(初二年级)校本课程开设安排表2007.3.doc
- 古诗词诵读 《客至》 课件(共26张PPT)统编版高中语文选择性必修下册.pptx VIP
- 《中医学》教学大纲.docx VIP
- 2022《真希望我父母读过这本书》读后感.docx VIP
- 真希望我父母读过这本书精品课件模板.pptx VIP
- 2025年湘潭医卫职业技术学院单招面试模拟试题及答案解析.docx
- 污水处理中的污泥脱水浓缩技术考核试卷.docx VIP
- 我真希望我父母读过这本书读后感.docx VIP
- 2024年湖南城建职业技术学院单招职业技能测试题库(考试直接用).docx VIP
- DB62T 4919-2024苜蓿草高水分打捆技术规程.pdf VIP
文档评论(0)