虚拟内存机制实习报告范本.docx
《虚拟内存机制实习报告范本.docx》由会员分享,可在线阅读,更多相关《虚拟内存机制实习报告范本.docx(31页珍藏版)》请在第壹文秘上搜索。
1、虚拟内存机制实习报告目录一:总体概述3二:任务完成情况3任务完成列表(Y/N)3具体EXerCiSe的完成情况3三:遇到的困难以及解决方法29四:收获及感想29五:对课程的意见和建议30六:参考文献30一总体概述通过认真仔细阅读Nachos系统虚拟内存部分的源代码,理解虚拟内存的管理和应用机制,用户程序的运行逻辑,并修改源代码,达到“实现虚拟存储系统”的目标。二:任务完成情况任务完成列表(Y/N)Exercise1Exercise2Exercise3Exercise4Exercise5Exercise6Eyesyesyesyesyesyes具体Exercise的完成情况Exercise1:源代
2、码阅读Partl:阅读code/userprog/progtest.cc,着重理解nachos执行用户程序的过程,以及该过程中与内存管理相关的要点O阅读情况:用户程序执行过程:步骤相关解释在main函数中,如果检测到传入的参数和“执行用户程序”相关,那么执行StartProcess函数(progtest,cc)在StartProcess函数中装载并运行一个用户程序StartProcess函数中:1.用OpenFiIe类打开文件OpenFiIe类在文件系统中定义,包括各种对文件的基本操作,如read,writeo实质上是包装了操作系统的底层函数。2.用AddrSpace类创建一个用户空间,并将打
3、开的文件装载进去创建用户空间包括:1 .获取文件头,并将大小端做适宜转换;2 .通过文件头计算出文件所需空间,包括代码段,初始化数据段,未初始化数据段,栈空间4个部分3 .通过文件所需空间计算出文件所需的虚拟页数量4 .创建用户空间的PagDtabIa,指示了第i个虚拟页(将)对应第i个物理页5 .由于目前是最基本的【直接映射+单用户程序无切换】模式,因此此时要将所有的虚拟页中的内容写到物理页(主存)当中。3.(AddrSpace:InitRegistersO)初始化用户空间中的各种寄存器,包括PC设为0,栈指针移到空间底部为执行用户程序做准备!4.(AddrSpace:RestoreStat
4、e()将用户的部分状态(如pagetabIe)装载到machine类中,准备执行事实上,仅仅是将用户空间的PagetabIe(在第二步创建的)装载到machine的指针中,相当于是用户程序在machine上运行时,是通过machine的pagetabIe映射找到对应内容运行的5.调用machine-Run,运行用户程序Machine-run是在mipssim.cc中定义的。其工作原理为:1.通过OneInstruction(instr)模拟mips,将一条指令进行分割,并软件模拟执行。其中,在Onelnstruction函数中,通过machine-ReadMem,读取主存中当前PC值指向的地址
5、里的指令。在ReadMem函数中,通过TransIate函数对传入的虚地址做转换。在TransIate函数中,如果虚地址没有找到对应的实地址转换,就会抛出异常(返回异常值)。返回的异常值在ReadMem中判断,并传入RaiSeException函数中RaiSeException函数会调用ExceptionHandIer函数对不同的异常做相应的处理。(以上是异常处理机制。在这里就顺便说了。)2.调用OnetiCk让时间前进3.重复1,2Part2:阅读code/machine目录下的machine,h(cc),transIate.h(cc)文件和code/userprog目录下的exceptio
6、n.h(cc),理解当前Nachos系统所采用的TLB机制和她址转换机制。TLB机制和地址转换机制:相关内容简单解释TransIationEntry类(transIate.h),包括:VirtuaIPage,physicalPage,以及一些标志位:vaIid,readonIy等。标识了用户空间的第i个虚拟页应该映射到主存的第j个物理页,并且这个物理页目前所处的状态。(valid?readnly?等)TLB初始化(machine.cc构造函数):生成指定数量的TransIationEntry构成的数组,并且设置均为InvaIid.TLB本身就类似于PagetabIe的子集,有若干的的映射对。T
7、LB的使用(transIate.cctransIate函数):1.遍历TLB数组,查找是否有无对应映射2.如果有,TLB命中,直接进行物理地址转换;否则,TLBMISS,进入Exception处理。(目前还没有对应的处理函数)地址转换机制:在transIate.cctransIate函数中进行。1 .通过VirtUaladdr,计算出vpn和offset;2 .通过TLB或是直接通过PagetabIe,获得vpn对应的ppn;(否则抛出异常,在异常处理函数中做处理,但目前这部分没有实现)3 .通过ppn和offset得到物理地址,将物理地址返回。无TLBmiss或是pagefau11处理(ex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟内存 机制 实习 报告 范本