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

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

ID:6180568

大小:481.91 KB

页数:18页

时间:2018-01-05

物理存储器与进程逻辑地址空间的管理实验报告_第1页
物理存储器与进程逻辑地址空间的管理实验报告_第2页
物理存储器与进程逻辑地址空间的管理实验报告_第3页
物理存储器与进程逻辑地址空间的管理实验报告_第4页
物理存储器与进程逻辑地址空间的管理实验报告_第5页
资源描述:

《物理存储器与进程逻辑地址空间的管理实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统实验报告课程名称操作系统实验课程编号0906553实验项目名称物理存储器与进程逻辑地址空间的管理学号年级姓名专业计算机科学与技术学生所在学院计算机科学与技术学院指导教师实验室名称地点哈尔滨工程大学计算机科学与技术学院17物理存储器与进程逻辑地址空间的管理一.实验概述:1.实验名称:物理存储器与进程逻辑地址空间的管理2.实验目的:1)通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法;2)通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。3.实验类型:验证、设计4.实验内容:1)准备实验,创建一

2、个EOSKernel项目;2)阅读控制台命令“pm”相关的源代码,并查看其执行的结果;3)分配物理页和释放物理页;4)阅读控制台命令“vm”相关的源代码,并查看执行的结果;5)在系统进程中分配虚拟页和释放虚拟页;6)在应用程序进程中分配虚拟页和释放虚拟页。二.实验环境操作系统:windowsXP编译器:TevalatonOSLab语言:C三.实验过程1.设计思路和流程图:MiAllocateAny函数流程图:17MiFreePages函数流程图:2.实验过程:1)新建一个EOSKernel项目;2)阅读ke/sysproc.c文件中的ConsoleCmdPhysicalMemory

3、函数,学习“pm”命令是如何统计并输出物理存储器信息的。在阅读的过程中应注意:①在统计输出物理存储器信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行的过程中有其它线程分配或者释放物理页;②全局变量MiTotalPageFrameCount保存了物理页的总数。每个物理页的大小是4KB,由宏PAGE_SIZE定义;③全局变量MiZeroedPageCount和MiFreePageCount分别保存了零页和空闲页的数量;④计算已用物理页数量的方法是:物理页总数减去零页数量,再减去空闲页数量。3)生成所创建的项目,启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后回车

4、,观察命令执行的结果。174)将修改后的ConsoleCmdPhysicalMemory函数进行替换,主要是在原有代码的后面添加了分配物理页和释放物理页的代码,生成修改后的EOSKernel项目,启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车;5)结束调试,在调用MiAllocateAnyPages函数的代码行添加一个断点,在调用MiFreePages函数的代码行添加一个断点;6)启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车,pm命令开始执行后,会在调用MiAllocateAnyPages函数的代码行处中断,按F11(逐语句)调试进入M

5、iAllocateAnyPages函数;17按F10(逐过程)单步调试MiAllocateAnyPages函数的执行过程:7)继续执行,,会在调用MiFreePages函数的代码行处中断,按F11(逐语句)调试进入MiFreePages函数;按F10(逐过程)单步调试MiFreePages函数的执行过程:17178)阅读控制台命令“vm”相关的代码,并查看执行结果。阅读ke/sysproc.c文件中的ConsoleCmdVM函数,学习“vm”命令是如何统计并输出进程的虚拟地址描述符信息的,注意一下几点:①与“pm””命令输出的是整个系统的物理存储器的使用情况不同,“vm”命令输出的

6、是某个进程的虚拟地址描述符信息,所以“vm”命令使用了一个参数——进程ID,用来指定一个进程。这个进程既可以是系统进程,也可以是用户进程;②在统计输出指定进程的虚拟地址描述符信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行的过程中有其它线程分配或者释放虚拟页;③EOS操作系统的进程有4G的虚拟地址空间,但并不是所有的虚拟地址空间都使用虚拟地址描述符来管理,有一些地址空间是静态的,还有一些地址空间由其他的动态方式来管理(例如系统内存池);④进程4G虚拟地址空间中由虚拟地址描述符所管理空间的低地址和高地址是固定的,在这段地址空间中,如果有虚拟页被占用,就会使用虚拟地址描述符来

7、标识,并放入链表中管理;9)启动调试,待EOS启动完毕,在EOS控制台中输入命令“pt”后按回车。“pt”命令可以输出当前系统中的进程列表,其中系统进程的ID为1;在EOS控制台中输入命令“vm1”后按回车,观察命令执行的结果:17系统进程中由虚拟地址描述符所管理的虚拟页只会分配给进程的句柄表(句柄表占用一个虚拟页)和线程的堆栈(堆栈占用两个虚拟页)。结合之前“pt”命令输出的进程和线程信息可知,当前系统中只有1个系统进程以及10个系统线程,所以在上图中,1号描述符所

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。