- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
物理存储器与进程逻辑地址空间的管理.doc
操作系统
实 验 报 告
课程名称 操作系统实验 实验项目名称 物理存储器与进程逻辑地址空间的管理 学号 班级 090614 姓名 专业 计算机科学与技术 学生所在学院 计算机科学与技术学院 指导教师 实验室名称地点 计算机软件第一实验室
哈尔滨工程大学
计算机科学与技术学院
一、实验概述
1. 实验名称
物理存储器与进程逻辑地址空间的管理。
2. 实验目的
通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。
通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。
3. 实验类型
验证,设计。
4. 实验内容
准备实验:
启动OS Lab。 新建一个EOS Kernel项目。
执行控制台命令“pm”,查看物理存储器的信息:
按F7生成在本实验3.1中创建的EOS Kernel项目。按F5启动调试。待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。
修改pm命令的源代码:
使用OS Lab打开本实验文件夹中的pm.c文件(将文件拖动到OS Lab窗口中释放即可打开)。此文件中有一个修改后的ConsoleCmdPhysicalMemory函数,主要是在原有代码的后面增加了分配物理页和释放物理页的代码。 使用pm.c文件中ConsoleCmdPhysicalMemory函数的函数体替换ke/sysproc.c文件中ConsoleCmdPhysicalMemory函数的函数体。 按F7生成修改后的EOS Kernel项目。按F5启动调试。待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。
分配物理页和释放物理页:
结束之前的调试。在ke/sysproc.c文件的ConsoleCmdPhysicalMemory函数中,在调用MiAllocateAnyPages函数的代码行(第1103行)添加一个断点,在调用MiFreePages函数的代码行(第1115行)添加一个断点。按F5启动调试。待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。 pm命令开始执行后,会在调用MiAllocateAnyPages函数的代码行处中断,按F11调试进入MiAllocateAnyPages函数。按F10单步调试MiAllocateAnyPages函数的执行过程。按F5继续执行,会在调用MiFreePages函数的代码行处中断,按F11调试进入MiFreePages函数。按F10单步调试MiFreePages函数的执行过程。
执行控制台命令“vm”,查看系统进程的虚拟地址描述符信息:
按F5启动调试。待EOS启动完毕,在EOS控制台中输入命令“pt”后按回车。“pt”命令可以输出当前系统中的进程列表,其中系统进程的ID为1。在EOS控制台中输入命令“vm 1”后按回车。观察命令执行的结果。
执行控制台命令“vm”,查看当创建了一个应用程序进程后,系统进程和应用程序进程中虚拟地址描述符的信息:
在“项目管理器”窗口中双击Floppy.img文件,使用FloppyImageEditor工具打开此软盘镜像。将本实验文件夹中的LoopApp.exe文件添加到软盘镜像的根目录中(将LoopApp.exe文件拖动到FloppyImageEditor窗口中释放即可)。EOS应用程序LoopApp.exe的源代码可以参考本实验文件夹中的LoopApp.c文件。点击FloppyImageEditor工具栏上的保存按钮,关闭该工具。按F5启动调试。待EOS启动完毕,在EOS控制台中输入命令“A:\LoopApp.exe”后按回车。此时按Ctrl+F2切换到“Console-2”,然后输入命令“pt”后按回车。输入命令“vm 1”后按回车,可以查看系统进程中虚拟地址描述符的信息。 输入命令“vm 31”后按回车,可以查看应用程序进程中虚拟地址描述符的信息。
在系统进程中分配虚拟页和释放虚拟页:
使用OS Lab打开本实验文件夹中的vm.c文件(将文件拖动到OS Lab窗口中释放即可打开)。此文件中有一个修改后的ConsoleCmdVM函数。使用vm.c文件中ConsoleCmdVM函数的函数体替换ke/sysproc.c文件中ConsoleCmdVM函数的函数体。按F7生成修改后的EOS Kernel项目。按F5启动调试。待EOS启动完毕,在EOS控制台中输入命令“vm 1”后按回车。
调试分配虚拟页和释放虚拟页的过程:
在ke/sysproc.c文件的Co
文档评论(0)