北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告

北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告

ID:46582139

大小:477.36 KB

页数:12页

时间:2019-11-25

北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告_第1页
北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告_第2页
北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告_第3页
北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告_第4页
北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告_第5页
资源描述:

《北大操作系统高级课程-陈向群作业-虚拟内存管理实习报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、虚拟内存管理实习报告目录内容一:总体概述..................................................................................................................3内容二:任务完成情况...........................................................................................................3任务完成列表

2、(Y/N).....................................................................................................3具体Exercise的完成情况................................................................................................3内容三:遇到的困难以及解决方法.........................

3、............................................................11内容四:收获及感想............................................................................................................11内容五:对课程的意见和建议.................................................................

4、............................11内容六:参考文献................................................................................................................112内容一:总体概述本次lab主要是针对操作系统内存管理的学习,内存管理主要有固定分区、可变分区、页式和段式管理。现代操作系统主要采用页式内存管理,它把用户程序地址空间划分成大小相等的部分,称为页。内存空间按页的大小

5、划分为大小相等的区域,称为内存块(物理页面,页框,页帧)。以页为单位进行分配,逻辑上相邻的页,物理上不一定相邻。虚拟内存的基本思想:每个程序拥有自己的地址空间,这个空间被分割成多个块,每一块称作一页或者页面,每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有页都必须在内存中才能运行。当程序引用到一部分在物理内存中的地址空间时,由硬件立即执行必要的映射。当程序引导到一部分不在物理内存中德的地址空间时,由操作系统负责将缺失的部分装入屋里内存并重新执行失效的指令。内容二:任务完成情况任务完成列表(Y/N)Ex

6、ercise1Exercise2Exercise3Exercise4Exercise5Exercise6Exercise7Challange完成情况YYYYYYNN具体Exercise的完成情况一、TLB异常处理目前,Nachos系统对于内存的管理是基于软件模拟的TLB机制。其工作原理、异常处理、替换算法等方面,与分页式内存管理非常相像。Exercise1源代码阅读Ø阅读code/userprog/progtest.cc,着重理解nachos执行用户程序的过程,以及该过程中与内存管理相关的要点。Ø阅读code/m

7、achine目录下的machine.h(cc),translate.h(cc)文件和code/userprog目录下的exception.h(cc),理解当前Nachos系统所采用的TLB机制和地址转换机制。解答:progtest.cc中有2个主要的方法,分别是StartProcess和ConsoleTest,它们的作用是给用户进程分配内存空间并且执行用户进程和测试控制台输入。StartProcess方法中首先通过OpenFile*executable=fileSystem->Open(filename);打开文

8、件,然后通过space=newAddrSpace(executable);currentThread->space=space;为文件分配内存空间并且把内存空间给当前进程。3然后通过space->InitRegisters();初始化寄存器的值,继而通过space->RestoreState();加载页表寄存器,然后就可以开始运行用户程序了。对于machine.h中定义了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。