教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

物理存储器和逻辑内存的管理)

来源:网络收集 时间:2026-09-06
导读: 操作系统 实 验 报 告 哈尔滨工程大学 计算机科学与技术学院 一、实验概述 1. 实验名称 物理存储器与进程逻辑空间的管理 2. 实验目的 a. 通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而 掌握物理存储器的管理方法。 b. 通过查看进程逻辑地址

操作系统 实 验 报 告

哈尔滨工程大学 计算机科学与技术学院

一、实验概述

1. 实验名称

物理存储器与进程逻辑空间的管理 2. 实验目的

a. 通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而

掌握物理存储器的管理方法。

b. 通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握

进程逻辑地址空间的管理方法。

3. 实验类型 验证+设计 4. 实验内容 1 准备实验

1.1 启动OS Lab。

1.2 新建一个EOS Kernel项目。

2阅读控制台命令“pm”相关的源代码,并查看其执行的结果 3分配物理页和释放物理页

4阅读控制台命令“vm”相关的源代码,并查看其执行的结果 5在系统进程中分配虚拟页和释放虚拟页 6在应用程序进程中分配虚拟页和释放虚拟页 二、实验环境

操作系统:EOS操作系统 编译器:IDE集成实验环境 语言:C语言

三、实验过程

1. 设计思路和流程图

图1.1分页管理物理存储器示意图

图1.2页框号数据库与物理页的关系图

2. 算法实现

int main(int argc, char* argv[]) {

// 1、如果要在调试应用程序时能够调试进入内核并显示对应的源码, // 必须使用 EOS 核心项目编译生成完全版本的 SDK 文件夹,然 // 后使用此文件夹覆盖应用程序项目中的 SDK 文件夹,并且 EOS // 核心项目在磁盘上的位置不能改变。

// 2、在启动调试应用程序之前必须首先删除/禁用所有的断点,在断 // 点中断 (int 3) 被命中后才能重新添加/启用断点,否则启动 // 调试会失败。 __asm("int $3\n nop");

/* TODO: 在此处添加自己的代码 */

#ifdef _DEBUG #endif

int *p= VirtualAlloc(0, 4, MEM_RESERVE|MEM_COMMIT); if(p){

//如果虚拟内存分配成功

printf("Allocate 4 byte vitraul memary at 0x%x \n",p);

p=0xFFFFFFFF;

printf("vitraul memary new value 0x%x \n",p);

Sleep(10000);//等待10秒钟 printf("wait for 10 s\n");

if(VirtualFree(p,0,MEM_RESERVE))//释放虚拟内存成功 printf("release vitraul memary success!\n");

else printf("Allocate 4 byte vitraul memory error!\n" );//内存释放不成功

printf("Endless loop!\n"); for(;;) {

}

} //进入死循环

else printf("release vitraul memary error!\n"); //虚拟内存分配不成功 }

3.实验结果

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

命令执行的结果,如图15-1所示,可以了解当前物理存储器的使用情况。 return 0;

2. 使用pm.c文件中ConsoleCmdPhysicalMemory函数的函数体替换

ke/sysproc.c文件中ConsoleCmdPhysicalMemory函数的函数体。观察命令执行的结果。

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

令可以输出当前系统中的进程列表,其中系统进程的ID为1。

4. 在EOS控制台中输入命令“vm 1”后按回车

5.待EOS启动完毕,在EOS控制台中输入命令“A:\LoopApp.exe”后按回车 。

6. 此时按Ctrl+F2切换到“Console-2”,然后输入命令“pt”后按回车。

7. 输入命令“vm 1”后按回车,可以查看系统进程中虚拟地址描述符的信息。

8. 输入命令“vm 31”后按回车,可以查看应用程序进程中虚拟地址描述符的信息。

9. MmAllocateVirtualMemory函数的执行过程监视窗口BaseAddress和RegionSize个变量前的值。

10. MmAllocateVirtualMemory函数的执行过程监视窗口BaseAddress和RegionSize个变量的后值。

11.MmAllocateVirtualMemory函数的执行过程函数的执行过程监视窗口BaseAddress

和RegionSize个变量前的值。

12.MmAllocateVirtualMemory函数的执行过程函数的执行过程监视窗口BaseAddress

和RegionSize个变量前的值。

13. 按F5启动调试,应用程序自动执行后输出的结果如图所示。

14. 在应用程序分配虚拟页后,利用10秒后才释放虚拟页的间隙,可以在控制台2中执行命令“vm 31”,查看此时应用程序进程的虚拟地址描述符信息。

四、实验体会

通过本次试验,我们练习了分配和回收物理内存,懂得物理存储器的管理方法,并且通过查看进程逻辑地址空间的使用情况来练习分配和回收虚拟内存,从而更好地掌握进程逻辑地址空间的管理方法。而且每次当自己成功的被检查通过时,心里的高兴可以持续好久。所以实验不仅给我们知识上的满足还给我们心里的满足。

…… 此处隐藏:509字,全部文档内容请下载后查看。喜欢就下载吧 ……
物理存储器和逻辑内存的管理).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1934096.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)