电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Nachos-实验11-设计并实现用户空间的虚拟内存管理-上

Nachos-实验11-设计并实现用户空间的虚拟内存管理-上_第1页
1/10
Nachos-实验11-设计并实现用户空间的虚拟内存管理-上_第2页
2/10
Nachos-实验11-设计并实现用户空间的虚拟内存管理-上_第3页
3/10
实验目的在未实现用户空间的虚拟内存管理之前,Nachos 系统在运行一个用户进程的时候,需要将程序在运行时可能会用到的所有信息都拷贝到 mainMemory 中去。这样,因为 mainMemory 的大小的限制,一些较大的文件可能无法执行;而相对应的,一些程序中可能包含着大量在执行过程中极少或根本不会被访问的数据,这些数据却又长期占据了内存的资源。本次试验的目的:整体理解 Nachos 系统的组织结构。设计并实现用户空间的虚拟内存管理。实验环境 Linux 操作系统,Nachos 操作系统实验分析此次实验是在实验 7—8——Extension of AddrSpace and System Calls Exec()的基础上更改的.实验的目录并没有在系统已有的 vm 目录下进行,而是将实验目录 lab7—8 更名为 lab11,目的是使用lab7—8 目录下的 Makefile 文件。在本次实验的过程中,发现并更改了实验 7—8 的一些疏漏之处。为了说明方便,首先澄清一下基本概念和数据结构:用 bitmap 做物理地址分配图 1 存取关系图页表 class TranslationEntry {public:int virtualPage; // The page number in virtual memory。// 对应于图 1 中的虚页 int physicalPage; // The page number in real memory (relative to the // start of ”mainMemory"// 对应于图 1 中的物理页 bool valid; // If this bit is set, the translation is ignored。 // (In other words, the entry hasn't been initialized。) bool readOnly; // If this bit is set, the user program is not allowed // to modify the contents of the page。 bool use; // This bit is set by the hardware every time the // page is referenced or modified。 bool dirty; // This bit is set by the hardware every time the // page is modified。int inFileAddr; //The address of this segment of data in the file.//对于 vmcode、vminitData,inFileAddr 代表在源文件中的 addr//对应于图 1 中的 linux 系统下的文件*.noff.//对于 vmuninitData、vmuserStack,inFileAddr 代表在 SWAP 文件中的位置 PageType type; //The type of this entry.//标明页中数据的类型};为了实现虚拟内存的页置换,在以上类中增加一个该页在文件中块偏移量 inFileAddr...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Nachos-实验11-设计并实现用户空间的虚拟内存管理-上

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部