- 17
- 0
- 约 18页
- 2017-01-29 发布于浙江
- 举报
【2017年整理】操作系统实验七-24-于宝龙
操作系统
实 验 报 告
课程名称 操作系统实验 实验项目名称 物理存储器与进程逻辑地址空间的管理 学号 2012201124 班级 201220211 姓名 于宝龙 专业 软件工程 学生所在学院 软件学院 指导教师 曹雪 实验室名称地点 21b0284
哈尔滨工程大学
软件学院
一、实验概述
1. 实验名称
物理存储器与进程逻辑地址空间的管理
2. 实验目的
(1)通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。
(2)通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。
3. 实验类型
验证+设计
二、实验环境
OS Lab
三、实验过程
1. 设计思路和流程图
图 3.1.1 MiAllocateAnyPages函数的流程图
图 3.1.2 MiFreePages函数的流程图
2.需要解决的问题及解答
(1) MmAllocateVirtualMemory函数的执行过程,要求给出监视窗口BaseAddress和RegionSize个变量前后变化截图界面。
答:BaseAddress和RegionSize个变量前后变化截图界面如下图所示。
图 3.2.1 进入MmAllocateVirtualMemory前两个变量的情况
图 3.2.2 完成MmAllocateVirtualMemory后两个变量的情况
MmFreeVirtualMemory函数的执行过程,要求给出监视窗口BaseAddress和RegionSize个变量前后变化截图界面。
答:BaseAddress和RegionSize个变量前后变化截图界面如下图所示。
图 3.2.3 进入MmFreeVirtualMemory前两个变量的情况
图 3.2.4 完成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函数的执行过程,尝试
原创力文档

文档评论(0)