操作系统7..docxVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统7.

《操作系统》实验报告实验题目物理存储器与进程逻辑地址空间的管理学生姓名樊娇学 号 2013211625专业班级 计算机科学与技术13-1班 指导教师 田卫东 院系名称 计算机与信息学院 2016 年 6 月 8 日实验7 物理存储器与进程逻辑地址空间的管理实验目的与要求通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存, 从而掌握进程逻辑地址空间的管理方法。实验内容与步骤按照下面的步骤执行控制台命令“ pm”,查看物理存储器的信息:1. 按 F7 生成在本实验 3.1 中创建的 EOS Kernel 项目。2. 按 F5 启动调试。3. 待 EOS 启动完毕,在 EOS 控制台中输入命令“ pm”后按回车。观察命令执行的结果, 如图 15-1 所示,可以了解当前物理存储器的使用情况。按照下面的步骤执行控制台命令“ vm”,查看系统进程的虚拟地址描述符信息:1. 按 F5 启动调试。2. 待 EOS 启动完毕,在 EOS 控制台中输入命令“ pt”后按回车。“pt”命令可以输出当前系统中的进程列表,其中系统进程的 ID 为 1。3. 在 EOS 控制台中输入命令“ vm 1”后按回车。观察命令执行的结果, 如图 15-3 所示,可以了解系统进程的虚拟地址描述符信息。在“项目管理器”窗口中双击 Floppy.img 文件,使用 FloppyImageEditor 工具打开此软盘镜像。2. 将本实验文件夹中的 LoopApp.exe 文件添加到软盘镜像的根目录中(将 LoopApp.exe 文件拖动到FloppyImageEditor 窗口中释放即可)。 EOS 应用程序 LoopApp.exe 的源代码可以参考本实验文件夹中的 LoopApp.c 文件。3. 点击 FloppyImageEditor 工具栏上的保存按钮,关闭该工具。4. 按 F5 启动调试。5. 待 EOS 启动完毕,在 EOS 控制台中输入命令“ A:\LoopApp.exe”后按回车。 此时就使用 EOS 应用程序文件 LoopApp.exe 创建了一个应用程序进程,由于此进程执行了一个死循环,所以此进程不会结束执行,除非关闭虚拟机。6. 此时按 Ctrl+F2 切换到“ Console-2” , 然后输入命令“ pt”后按回车。 输出的信息如图 15-4 所示。 其中 ID 为 31 的进程就是应用程序进程, ID 为 33 的线程就是应用程序进程的主线程。7. 输入命令“ vm 1”后按回车,可以查看系统进程中虚拟地址描述符的信息。输出的信息如图 15-5所示。按照下面的步骤调试分配物理页和释放物理页的过程:1. 结束之前的调试。2. 在 ke/sysproc.c 文件的 ConsoleCmdPhysicalMemory 函数中,在调用 MiAllocateAnyPages 函数的代码行( 第 1103 行)添加一个断点,在调用 MiFreePages 函数的代码行( 第 1115 行)添加一个断点。3. 按 F5 启动调试。4. 待 EOS 启动完毕,在 EOS 控制台中输入命令“ pm”后按回车。5. pm 命令开始执行后,会在调用 MiAllocateAnyPages 函数的代码行处中断, 按 F11 调试进入MiAllocateAnyPages 函数。3.问题与分析在本实验 3.3 中,如果分配了物理页后,没有回收,会对 EOS 操作系统造成什么样的影响? 目前 EOS操作系统内核函数 MiAllocateAnyPages 能处理所有物理页被分配完毕的情况吗? 例如在没有可分配的物理页的情况下调用该内核函数,是否会返回失败? 如果内核函数 MiAllocateAnyPages 还不能处理这种极端情况, 尝试修改代码解决这个问题。2. 在本实验 3.3 中, 在分配物理页时是调用的内核函数 MiAllocateAnyPages,该函数会优先分配空闲页,尝试修改代码, 调用内核函数 MiAllocateZeroedPages 优先分配零页,并调试分配零页的情况。 尝试从性能的角度分析内核函数 MiAllocateAnyPages 和 MiAllocateZeroedPages。 尝试从安全性的角度分析分配零页的必要性。3. 观察本实验 3.4 中使用“vm”命令输出的系统进程的虚拟地址描述符(图 15-3),可以看到在 2 号描述符和 3 号描述符之间有两个虚拟页的空隙,尝试结合虚拟页的分配和释放说明产

文档评论(0)

sa43sad5 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档