物理存储器与进程逻辑地址空间的管理实验报告.docxVIP

物理存储器与进程逻辑地址空间的管理实验报告.docx

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

PAGE PAGE 17 操作系统 实 验 报 告 课程名称 操作系统实验 课程编号 0906553 实验项目名称 物理存储器与进程逻辑地址空间的管理 学号 年级 姓名 专业 计算机科学与技术 学生所在学院 计算机科学与技术学院 指导教师 实验室名称地点 哈尔滨工程大学 计算机科学与技术学院 物理存储器与进程逻辑地址空间的管理 实验概述: 1.实验名称:物理存储器与进程逻辑地址空间的管理 2.实验目的: 1)通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法; 2)通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的 管理方法。 3.实验类型:验证、设计 4.实验内容: 1)准备实验,创建一个EOS Kernel项目; 2)阅读控制台命令“pm”相关的源代码,并查看其执行的结果; 3)分配物理页和释放物理页; 4)阅读控制台命令“vm”相关的源代码,并查看执行的结果; 5)在系统进程中分配虚拟页和释放虚拟页; 6)在应用程序进程中分配虚拟页和释放虚拟页。 二.实验环境 操作系统:windows XP 编译器:Tevalaton OS Lab 语言:C 三.实验过程 1.设计思路和流程图: MiAllocateAny函数流程图: MiFreePages函数流程图: 2.实验过程: 1)新建一个 EOS Kernel 项目; 2)阅读 ke/sysproc.c 文件中的 ConsoleCmdPhysicalMemory 函数,学习“pm”命令是如何统计并输出物理存储器信息的。在阅读的过程中应注意: ①在统计输出物理存储器信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行的过程 中有其它线程分配或者释放物理页; ②全局变量 MiTotalPageFrameCount 保存了物理页的总数。每个物理页的大小是 4KB,由宏 PAGE_SIZE 定义; ③全局变量 MiZeroedPageCount 和 MiFreePageCount 分别保存了零页和空闲页的数量; ④计算已用物理页数量的方法是:物理页总数减去零页数量,再减去空闲页数量。 3)生成所创建的项目,启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后回车,观察命令执行的结果。 4)将修改后的ConsoleCmdPhysicalMemory 函数进行替换,主要是在原有代码的后面添加了分配物理页和释放物理页的代码,生成修改后的EOS Kernel项目,启动调试,待 EOS 启动完毕,在 EOS 控制台中输入命令“pm”后按回车; 5)结束调试,在调用 MiAllocateAnyPages 函数的代码行添加一个断点,在调用 MiFreePages 函数的代码行添加一个断点; 6)启动调试,待 EOS 启动完毕,在 EOS 控制台中输入命令“pm”后按回车,pm 命令开始执行后,会在调用 MiAllocateAnyPages 函数的代码行处中断,按 F11(逐语句)调试进入 MiAllocateAnyPages 函数; 按 F10(逐过程)单步调试 MiAllocateAnyPages 函数的执行过程: 7)继续执行,,会在调用 MiFreePages 函数的代码行处中断,按F11(逐语句)调试进入 MiFreePages 函数; 按 F10(逐过程)单步调试 MiFreePages 函数的执行过程: 8)阅读控制台命令“vm”相关的代码,并查看执行结果。 阅读 ke/sysproc.c 文件中的 ConsoleCmdVM 函数,学习“vm”命令是如何统计并输出进程的 虚拟地址描述符信息的,注意一下几点: 与“pm” ”命令输出的是整个系统的物理存储器的使用情况不同,“vm”命令输出的是某个进程的 虚拟地址描述符信息,所以“vm”命令使用了一个参数——进程 ID,用来指定一个进程。这个进 程既可以是系统进程,也可以是用户进程; 在统计输出指定进程的虚拟地址描述符信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行的过程中有其它线程分配或者释放虚拟页; EOS 操作系统的进程有 4G 的虚拟地址空间,但并不是所有的虚拟地址空间都使用虚拟地址描述符 来管理,有一些地址空间是静态的,还有一些地址空间由其他的动态方式来管理(例如系统内存 池); 进程 4G 虚拟地址空间中由虚拟地址描述符所管理空间的低地址和高地址是固定的,在这段地址空间中,如果有虚拟页被占用,就会使用虚拟地址描述符来标识,并放入链表中管理; 9)启动调试,待 EOS 启

文档评论(0)

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

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

1亿VIP精品文档

相关文档