07物理存储器与进程逻辑地址空间的管理.docVIP

07物理存储器与进程逻辑地址空间的管理.doc

  1. 1、本文档共21页,可阅读全部内容。
  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文档。上传文档
查看更多

《操作系统》实验报告

实验题目

实验题目物理存储器与进程逻辑地址空间得管理

学生姓名lee

学号

专业班级

指导教师

院系名称计算机与信息学院

2017年10月30日

实验7物理存储器与进程逻辑地址空间得管理

实验目得与要求

??通过查瞧物理存储器得使用情况,并练习分配与回收物理内存,从而掌握物理存储器得管理方法。

??通过查瞧进程逻辑地址空间得使用情况,并练习分配与回收虚拟内存,从而掌握进程逻辑地址空间得管理方法。

实验原理

阅读本书第6章、重点阅读第6、3节与第6.6节,了解物理存储器得管理方式与进程逻辑地址空间得管理方式。

实验内容

3。1准备实验

按照下面得步骤准备实验:

1、启动OSLab。

2.新建一个EOSKernel项目、

3、2阅读控制台命令“pm相关得源代码,并查瞧其执行得结果

阅读ke/sysproc。c文件中第1059行得ConsoleCmdPhysicalMemory函数,学习“pm”命令就是如何统计并输出物理存储器信息得、在阅读得过程中需要注意下面几点:

??在统计输出物理存储器信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行得过程中有其它线程分配或者释放物理页。

??全局变量MiTotalPageFrameCount保存了物理页得总数。每个物理页得大小就是4KB,由宏PAGE_SIZE定义。

??全局变量MiZeroedPageCount与MiFreePageCount分别保存了零页与空闲页得数量。

??计算已用物理页数量得方法就是:物理页总数减去零页数量,再减去空闲页数量、

按照下面得步骤执行控制台命令“pm”,查瞧物理存储器得信息:

1.按F7生成在本实验3、1中创建得EOSKernel项目。

2.按F5启动调试。

3、待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车、

观察命令执行得结果,如图1所示,可以了解当前物理存储器得使用情况、

图1:“pm命令得执行结果

3.3分配物理页与释放物理页

接下来,在pm命令函数中添加分配物理页与释放物理页得代码,单步调试管理物理页得方法、按照下面得步骤修改pm命令得源代码:

1、使用OSLab打开本实验文件夹中得pm。c文件(将文件拖动到OSLab窗口中释放即可打开)。此文件中有一个修改后得ConsoleCmdPhysicalMemory函数,主要就是在原有代码得后面增加了分配物理页与释放物理页得代码、

2、使用pm.c文件中ConsoleCmdPhysicalMemory函数得函数体替换ke/sysproc、c文件中ConsoleCmdPhysicalMemory函数得函数体。

3。按F7生成修改后得EOSKernel项目。

4。按F5启动调试。

5、待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。

观察命令执行得结果,如图2所示,尝试说明分配物理页或者释放物理页后物理存储器得变化情况。

图2:分配物理页或者释放物理页后物理存储器得变化情况。

按照下面得步骤调试分配物理页与释放物理页得过程:

1。结束之前得调试、

2。在ke/sysproc、c文件得ConsoleCmdPhysicalMemory函数中,在调用MiAllocateAnyPages函数得代码行(第1103行)添加一个断点,在调用MiFreePages函数得代码行(第1115行)添加一个断点。

3.按F5启动调试。

4、待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车。

5、pm命令开始执行后,会在调用MiAllocateAnyPages函数得代码行处中断,按F11调试进入MiAllocateAnyPages函数。

6.按F10单步调试MiAllocateAnyPages函数得执行过程,尝试回答下面得问题:

(1)本次分配得物理页得数量就是多少?分配得物理页得页框号就是多少?

(2)物理页就是从空闲页链表中分配得?还就是从零页链表中分配得?

(3)哪一行语句减少了空闲页得数量?哪一行语句将刚刚分配得物理页由空闲状态修改为忙状态?

(4)绘制MiAllocateAnyPages函数得流程图。

答:(1)本次分配得物理页得数量就是1,分配得物理页得页框号就是0x409;(

2)物理页就是从空闲页链表中分配得,;

(3)第226行MiFreeP

文档评论(0)

136****0789 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档