1 / 12
文档名称:

操作系统实验七-2012201124-于宝龙.doc

格式:doc   大小:4,399KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验七-2012201124-于宝龙.doc

上传人:坐水行舟 2018/9/27 文件大小:4.30 MB

下载得到文件列表

操作系统实验七-2012201124-于宝龙.doc

相关文档

文档介绍

文档介绍:操作系统
实验报告
课程名称
操作系统实验
实验项目名称
物理存储器与进程逻辑地址空间的管理
学号
2012201124
班级
201220211
姓名
于宝龙
专业
软件工程
学生所在学院
软件学院
指导教师
曹雪
实验室名称地点
21b0284
哈尔滨工程大学
软件学院
一、实验概述
1. 实验名称
物理存储器与进程逻辑地址空间的管理
2. 实验目的
(1)通过查看物理存储器的使用情况,并练****分配和回收物理内存,从而掌握物理存储器的管理方法。
(2)通过查看进程逻辑地址空间的使用情况,并练****分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。
3. 实验类型
验证+设计
二、实验环境
OS Lab
三、实验过程
1. 设计思路和流程图
图 MiAllocateAnyPages函数的流程图
图 MiFreePages函数的流程图

(1) MmAllocateVirtualMemory函数的执行过程,要求给出监视窗口BaseAddress和RegionSize个变量前后变化截图界面。
答:BaseAddress和RegionSize个变量前后变化截图界面如下图所示。
图 进入MmAllocateVirtualMemory前两个变量的情况
图 完成MmAllocateVirtualMemory后两个变量的情况
MmFreeVirtualMemory函数的执行过程,要求给出监视窗口BaseAddress和RegionSize个变量前后变化截图界面。
答:BaseAddress和RegionSize个变量前后变化截图界面如下图所示。
图 进入MmFreeVirtualMemory前两个变量的情况
图 完成MmFreeVirtualMemory后两个变量的情况
(3) 按 F10单步调试MiAllocateAnyPages函数的执行过程,尝试回答下面的问题:
①本次分配的物理页的数量是多少?分配的物理页的页框号是多少?
②物理页是从空闲页链表中分配的?还是从零页链表中分配的?
③哪一行语句减少了空闲页的数量?哪一行语句将刚刚分配的物理页由空闲状态修改为忙状态?
④绘制 MiAllocateAnyPages函数的流程图。
答:①本次分配的物理页的数量是1,分配的物理页的页框号是0x409;②物理页是从空闲页链表中分配的,;③第226行MiFreePageListHead = MiGetPfnDatabaseEntry(Pfn)->Next;和第227行MiFreePageCount--;减少了空闲页的数量,第229行将刚刚分配的物理页由空闲状态修改为忙状态;④见实验过程开头流程图部分。
(4) 按 F10单步调试MiFreePages函数的执行过程,尝试回答下面的问题:
①本次释放的物理页的数量是多少?释放的物理页的页框号是多少?释放的物理页是之前分配的物理页吗?
②释放的物理页是被放入了空闲页链表中?还是零页链表中?
③绘制 MiFreePages函数的流程图。
答:①本次释放的物理页的数量是1,释放的物理页的页框号0x409,释放的物理页是之前分配的物理页;②释放的物理页被放入了空闲页链表中;③见实验过程开头流程图部分。
(5) 按 F10单步调试MmAllocateVirtualMemory函数的执行过程,尝试回答下面的问题:
①分配的虚拟页的起始地址是多少?分配的虚拟页的数量是多少?它们和参数BaseAddress和RegionSize初始化的值有什么样的关系?
②分配虚拟页的同时有为虚拟页映射实际的物理页吗?这是由哪个参数决定的?
③分配的虚拟页是在系统地址空间(高2G)还是在用户地址空间(低2G)?这是由哪个参数决定的?
④参考 MiReserveAddressRegion函数的定义和注释,说明该函数的功能。
答:①分配的虚拟页的起始地址是0xa0003000,分配的虚拟页的数量是1,BaseAddress和RegionSize初始化的值是期望保留或者提交的地址区域的起始地址和大小;②分配虚拟页的同时有为虚拟页映射实际的物理页,这是由第三个参数AllocationType决定的;③分配的虚拟页是在系统地址空间(高2G),这是由第四个参数SystemVirtual决定的;④ MiReserveAddressRegion函数的功能是保留一段虚拟地址区域。
(6) 按 F10单步调试MmFreeVirtualMemory函数的执行过程,尝试回答下面的问题:
①本次释放的虚拟地址是多少