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

2019-04-16 14:37

操作系统 实 验 报 告

课程名称 实验项目名称 学号 操作系统实验 课程编号 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函数流程图:

1

MiFreePages函数流程图:

2.实验过程:

1)新建一个 EOS Kernel 项目;

2)阅读 ke/sysproc.c 文件中的 ConsoleCmdPhysicalMemory 函数,学习“pm”命令是如何统计并输出物理存储器信息的。在阅读的过程中应注意:

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

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

③全局变量 MiZeroedPageCount 和 MiFreePageCount 分别保存了零页和空闲页的数量;

④计算已用物理页数量的方法是:物理页总数减去零页数量,再减去空闲页数量。 3)生成所创建的项目,启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后回车,观察命令执行的结果。

2

4)将修改后的ConsoleCmdPhysicalMemory 函数进行替换,主要是在原有代码的后面添加了分配物理页和释放物理页的代码,生成修改后的EOS Kernel项目,启动调试,待 EOS 启动完毕,在 EOS 控制台中输入命令“pm”后按回车;

5)结束调试,在调用 MiAllocateAnyPages 函数的代码行添加一个断点,在调用 MiFreePages 函数的代码行添加一个断点;

6)启动调试,待 EOS 启动完毕,在 EOS 控制台中输入命令“pm”后按回车,pm 命令开始执行后,会在调用 MiAllocateAnyPages 函数的代码行处中断,按 F11(逐语句)调试进入 MiAllocateAnyPages 函数;

3

按 F10(逐过程)单步调试 MiAllocateAnyPages 函数的执行过程:

7)继续执行,,会在调用 MiFreePages 函数的代码行处中断,按F11(逐语句)调试进入 MiFreePages 函数;

按 F10(逐过程)单步调试 MiFreePages 函数的执行过程:

4


物理存储器与进程逻辑地址空间的管理实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:现场信号题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: