分页存储器管理

上传人:ji****72 文档编号:37643981 上传时间:2018-04-20 格式:DOC 页数:7 大小:212KB
返回 下载 相关 举报
分页存储器管理_第1页
第1页 / 共7页
分页存储器管理_第2页
第2页 / 共7页
分页存储器管理_第3页
第3页 / 共7页
分页存储器管理_第4页
第4页 / 共7页
分页存储器管理_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《分页存储器管理》由会员分享,可在线阅读,更多相关《分页存储器管理(7页珍藏版)》请在金锄头文库上搜索。

1、分页存储器管理1分页存储器管理分页存储器管理实验性质:实验性质:验证 建议学时:建议学时:2 学时一、实验目的一、实验目的学习 i386 处理器的二级页表硬件机制,理解分页存储器管理原理。 查看 EOS 应用程序进程和系统进程的二级页表映射信息,理解页目录和页表的管理方 式。 编程修改页目录和页表的映射关系,理解分页地址变换原理。二、预备知识二、预备知识阅读EOS 实验指南第 6 章。重点阅读 6.1、6.2 和 6.3 节,了解 i386 处理器的二 级页表硬件机制和 EOS 操作系统的分页存储器管理方式。三、实验内容三、实验内容3.13.1 准备实验准备实验 按照下面的步骤准备本次实验:

2、1. 启动 OS Lab。 2. 新建一个 EOS 应用程序项目。 3.23.2 查看查看 EOSEOS 应用程序进程的页目录和页表应用程序进程的页目录和页表 使用 OS Lab 打开本实验文件夹中的 memory.c 和 getcr3.asm 文件(将文件拖动到 OS Lab 窗口中释放即可打开) 。仔细阅读这两个文件中的源代码和注释,main 函数的流程图可 以参见图 1。 按照下面的步骤查看 EOS 应用程序进程的页目录和页表: 1.使用 memory.c 文件中的源代码替换之前创建的 EOS 应用程序项目中 EOSApp.c 文 件中的源代码。 2.右键点击“项目管理器”窗口中的“源文

3、件”文件夹节点,在弹出的快捷菜单中 选择“添加”中的“添加新文件” 。 3.在弹出的“添加新文件”对话框中选择“asm 源文件”模板。 4.在“名称”中输入文件名称“func” 。 5.点击“添加”按钮添加并自动打开文件 func.asm。 6.将 getcr3.asm 文件中的源代码复制到 func.asm 文件中。 7.按 F7 生成修改后的 EOS 应用程序项目。 8.按 F5 启动调试。 9.应用程序执行的过程中,会将该进程的二级页表映射信息输出到虚拟机窗口和 OS Lab“输出”窗口中,输出内容如图 2(a) 。 10. 将“输出”窗口中的内容复制到一个文本文件中。分页存储器管理2m

4、ain函函数数开开始始关关中中断断输输出出CR3中中页页目目录录的的 页页框框号号PDE标标号号初初始始化化为为0PDE标标号号 小小于于1024?从从页页目目录录中中获获取取标标号号 对对应应的的PDEPDE 有有效效吗吗?PDE标标号号增增加加1输输出出PDE信信息息PTE标标号号初初始始化化为为0PTE标标号号 小小于于1024?从从PDE映映射射的的页页表表中中 获获取取标标号号对对应应的的PTEPTE 有有效效吗吗?PTE标标号号增增加加1输输出出PTE信信息息占占用用的的物物理理页页 计计数数器器增增加加1main函函数数结结束束开开中中断断输输出出占占用用的的物物理理页页数数否否

5、是是是是否否是是是是否否否否图图 1 1:mainmain 函数流程图函数流程图分页存储器管理3CR3-0x409 PDE: 0x1 (0x400000)-0x41D PTE: 0x1 (0x401000)-0x41E PTE: 0x2 (0x402000)-0x41F PTE: 0x3 (0x403000)-0x420 PTE: 0x4 (0x404000)-0x421 PTE: 0x5 (0x405000)-0x422 PTE: 0x6 (0x406000)-0x423 PTE: 0x7 (0x407000)-0x424 PTE: 0x8 (0x408000)-0x425 PTE: 0x9

6、 (0x409000)-0x426 PTE: 0xA (0x40A000)-0x427 PTE: 0xB (0x40B000)-0x428 PDE: 0x200 (0x80000000)-0x401 PTE: 0x0 (0x80000000)-0x0 PTE: 0x1 (0x80001000)-0x1 . PTE: 0x3FE (0x803FE000)-0x3FE PTE: 0x3FF (0x803FF000)-0x3FF PDE: 0x280 (0xA0000000)-0x403 PTE: 0x0 (0xA0000000)-0x405 PTE: 0x1 (0xA0001000)-0x406

7、PTE: 0x2 (0xA0002000)-0x407 PTE: 0x3 (0xA0003000)-0x41C PTE: 0x5 (0xA0005000)-0x40A PTE: 0x6 (0xA0006000)-0x40B PTE: 0x7 (0xA0007000)-0x40C PTE: 0x8 (0xA0008000)-0x40D PTE: 0x9 (0xA0009000)-0x40E PTE: 0xA (0xA000A000)-0x40F PTE: 0xB (0xA000B000)-0x410 PTE: 0xC (0xA000C000)-0x411 PTE: 0xD (0xA000D000

8、)-0x412 PTE: 0xE (0xA000E000)-0x413 PTE: 0xF (0xA000F000)-0x414 PTE: 0x10 (0xA0010000)-0x415 PTE: 0x11 (0xA0011000)-0x416 PTE: 0x12 (0xA0012000)-0x417 PTE: 0x13 (0xA0013000)-0x418 PTE: 0x14 (0xA0014000)-0x419 PTE: 0x15 (0xA0015000)-0x41A PTE: 0x16 (0xA0016000)-0x41B PTE: 0x17 (0xA0017000)-0x429 PTE:

9、 0x18 (0xA0018000)-0x42A PDE: 0x281 (0xA0400000)-0x404 PDE: 0x300 (0xC0000000)-0x409 PTE: 0x1 (0xC0001000)-0x41D PTE: 0x200 (0xC0200000)-0x401 PTE: 0x280 (0xC0280000)-0x403 PTE: 0x281 (0xC0281000)-0x404 PTE: 0x300 (0xC0300000)-0x409 PTE: 0x301 (0xC0301000)-0x402 PDE: 0x301 (0xC0400000)-0x402 PTE: 0x

10、0 (0xC0400000)-0x408Physical Page Total: 1066 Physical Memory Total: 4366336CR3-0x400PDE: 0x200 (0x80000000)-0x401 PTE: 0x0 (0x80000000)-0x0 PTE: 0x1 (0x80001000)-0x1 . PTE: 0x3FE (0x803FE000)-0x3FE PTE: 0x3FF (0x803FF000)-0x3FF PDE: 0x280 (0xA0000000)-0x403 PTE: 0x0 (0xA0000000)-0x405 PTE: 0x1 (0xA

11、0001000)-0x406 PTE: 0x2 (0xA0002000)-0x407 PTE: 0x3 (0xA0003000)-0x41C PTE: 0x5 (0xA0005000)-0x40A PTE: 0x6 (0xA0006000)-0x40B PTE: 0x7 (0xA0007000)-0x40C PTE: 0x8 (0xA0008000)-0x40D PTE: 0x9 (0xA0009000)-0x40E PTE: 0xA (0xA000A000)-0x40F PTE: 0xB (0xA000B000)-0x410 PTE: 0xC (0xA000C000)-0x411 PTE:

12、0xD (0xA000D000)-0x412 PTE: 0xE (0xA000E000)-0x413 PTE: 0xF (0xA000F000)-0x414 PTE: 0x10 (0xA0010000)-0x415 PTE: 0x11 (0xA0011000)-0x416 PTE: 0x12 (0xA0012000)-0x417 PTE: 0x13 (0xA0013000)-0x418 PTE: 0x14 (0xA0014000)-0x419 PTE: 0x15 (0xA0015000)-0x41A PTE: 0x16 (0xA0016000)-0x41B PTE: 0x17 (0xA0017

13、000)-0x429 PTE: 0x18 (0xA0018000)-0x42A PDE: 0x281 (0xA0400000)-0x404 PDE: 0x300 (0xC0000000)-0x400PTE: 0x200 (0xC0200000)-0x401 PTE: 0x280 (0xC0280000)-0x403 PTE: 0x281 (0xC0281000)-0x404 PTE: 0x300 (0xC0300000)-0x400 PTE: 0x301 (0xC0301000)-0x402 PDE: 0x301 (0xC0400000)-0x402Physical Page Total: 1

14、053 Physical Memory Total: 4313088 (a a)(b b) 图图 2 2:(:(a a)EOSEOS 应用程序进程的二级页表映射信息应用程序进程的二级页表映射信息 (b b)有应用程序进程时,系统进程的二级页表映射信息)有应用程序进程时,系统进程的二级页表映射信息 图 2(a)中第一列是页目录中有效的 PDE,第二列是 PDE 映射的页表中有效的 PTE(详细的格式可以参考源代码中的注释。注意,PDE: 0x200 对应的页表中所有 1024 个 PTE 都是有效的,所以在图中省略了一部分) 。根据图 2(a)回答下面的问题:分页存储器管理4应用程序进程的页目录

15、和页表占用了几个物理页?页框号分别是多少? 映射用户地址空间(低 2G)的页表的页框号是多少?该页表有几个有效的 PTE, 或者说有几个物理页用来装载应用程序的代码、数据和堆栈,页框号是多少? 3.33.3 查看应用程序进程和系统进程并发时的页目录和页表查看应用程序进程和系统进程并发时的页目录和页表 需要对 EOS 应用程序进行一些修改: 1. 结束之前的调试。 2. 取消 EOSApp.c 第 121 行语句(该语句会等待 10 秒)的注释。 3. 按 F7 生成修改后的 EOS 应用程序项目。 4. 按 F5 启动调试。 5. 在“Console-1”中会自动执行 EOSApp.exe,创

16、建该应用程序进程,利用其等待 10 秒的时间,按 Ctrl+F2 切换到“Console-2” 。 6. 在“Console-2”中输入命令“mm”后按回车,会将系统进程的二级页表映射信 息输出到虚拟机窗口和 OS Lab 的“输出”窗口,输出内容如图 2(b) 。注意,在 图 2(b)中添加了一些空行,方便与图 2(a)比较。应用程序在等待 10 秒后又 会输出和图 2(a)一致的内容。 7. 将“输出”窗口中的内容复制到一个文本文件中。 控制台命令“mm”对应的源代码在 EOS 内核项目 ke/sysproc.c 文件的 ConsoleCmdMemoryMap 函数中(第 246 行) ,与 memory.c 文件中的源代码基本类似。 结合图 2(a)和(b)回答下面的问题: EOS 启动后系统进程是一直运行的,所以当创建应用程序进

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号