物理存储器与进程逻辑地址空间的管理实验报告.docx
- 文档编号:2407347
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:14
- 大小:358.08KB
物理存储器与进程逻辑地址空间的管理实验报告.docx
《物理存储器与进程逻辑地址空间的管理实验报告.docx》由会员分享,可在线阅读,更多相关《物理存储器与进程逻辑地址空间的管理实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
物理存储器与进程逻辑地址空间的管理实验报告
操作系统
实验报告
课程名称
操作系统实验
实验项目名称
物理存储器与进程逻辑地址空间的管理
学号
061229
班级
20100612
姓名
专业
计算机科学与技术
学生所在学院
计算机科学与技术学院
指导教师
实验室名称地点
计算机基础第七实验室21B475
哈尔滨工程大学
计算机科学与技术学院
一、实验概述
1.实验名称
物理存储器与进程逻辑地址空间的管理
2.实验目的
(1)通过查看物理存储器的使用情况,并练习分配和回收物理内存,从而掌握物理存储器的管理方法。
(2)通过查看进程逻辑地址空间的使用情况,并练习分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。
3.实验类型
验证+设计
4.实验内容
(1)、准备实验
(2)、执行控制台命令“pm”,查看物理存储器的信息
(3)、分配物理页和释放物理页:
a.在pm命令函数中添加分配物理页和释放物理页的代码
b.单步调试分配物理页和释放物理页
(4)、执行控制台命令“vm”,查看系统进程的虚拟地址描述符信息
执行控制台命令“vm”,查看当创建了一个应用程序进程后,系统进程和应用程序进程中虚拟地址描述符的信息
(5)、在系统进程中分配虚拟页和释放虚拟页
(6)、在应用程序进程中分配虚拟页和释放虚拟页
(7)、结束实验
二、实验环境
WindowsXP操作系统+OSlab试验平台
三、实验过程
1.设计思路和流程图
2.算法实现
3.需要解决的问题及解答
4.主要数据结构、实现代码及其说明
a.调用API函数VirtualAlloc,分配一个整型变量所需的空间,并使用一个整型变量的指针指向这个空间。
b.修改整型变量的值为0xFFFFFFFF。
在修改前输出整型变量的值,在修改后再输出整型变量的值。
c.调用API函数Sleep,等待10秒钟。
d.调用API函数VirtualFree,释放之前分配的整型变量的空间。
e.进入死循环,这样应用程序就不会结束。
5.源程序并附上注释
#include"EOSApp.h"
intmain(intargc,char*argv[])
{
#ifdef_DEBUG
__asm("int$3\nnop");
#endif
/*TODO:
在此处添加自己的代码*/
INT*d;
if(d=VirtualAlloc(0,sizeof(int),MEM_RESERVE|MEM_COMMIT))
{//调用API函数VirtualAlloc,分配一个整型变量所需的空间,并使用一个整型变量的指针指向这个空间。
printf("Allocated%dbytesvirtualmemoryof0x%x\n\n",sizeof(int),d);
printf("virtualmemoryoriginalvalue:
0x%x\n\n",*d);//输出原始整型变量的值
*d=0xFFFFFFFF;//修改整型变量的值为0xFFFFFFFF
printf("virtualmemorynewvalue:
0x%x\n\n",*d);//输出修改后的整型变量的值
printf("\nWaitfor10seconds\n");
Sleep(10000);//调用API函数Sleep,等待10秒钟。
系统以毫秒为单位
if(VirtualFree(d,0,MEM_RELEASE))////调用API函数VirtualFree,释放之前分配的整型变量的空间
printf("\nRealeasevirtualmemorysuccess!
\n");
else{
printf("realeaseerror\n");
return-1;
}
printf("\nEndlessloop!
");
for(;;){;}//进入死循环,这样应用程序就不会结束
return0;
}
else
{
printf("error\n");
return-1;//若不能成功,打印error,并返回-1。
}
printf("Helloworld!
\n");
return0;
}
6.程序运行时的初值和运行结果
a.控制台命令“pm”执行的结果
b.分配物理页和释放物理页
(1).使用OSLab打开本实验文件夹中的pm.c文件(将文件拖动到OSLab窗口中释放即可打开)。
此文件中有一个修改后的ConsoleCmdPhysicalMemory函数,主要是在原有代码的后面增加了分配物理页和释放物理页的代码。
(2).使用pm.c文件中ConsoleCmdPhysicalMemory函数的函数体替换ke/sysproc.c文件中ConsoleCmdPhysicalMemory函数的函数体。
(3).按F7生成修改后的EOSKernel项目。
(4).按F5启动调试。
(5).待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车
尝试在调用MiAllocateAnyPages函数时分配多个物理页,然后在调用MiFreePages函数时将分配的多个物理页释放,并练习调试这两个函数在分配多个物理页和释放多个物理页时执行的过程。
我们把分配数量和释放数量设定为2:
c.执行控制台命令“vm”,查看系统进程的虚拟地址描述符信息:
d.执行控制台命令“vm”,查看当创建了一个应用程序进程后,系统进程和应用程序进程中虚拟地址描述符的信息:
使用pt命令查看有应用程序运行时进程和线程的信息。
创建了一个应用程序进程后,系统进程中虚拟地址描述符的信息。
使用“vm”命令查看应用程序进程虚拟地址描述符的结果。
分配虚拟页或者释放虚拟页后虚拟地址描述符及物理存储器的变化情况。
正在启动VirtualPC...
开始调试...
TotalVpnfrom655360to657407.(0xA0000000-0xA07FFFFF)
1#VadInclude1VpnFrom655360to655360.(0xA0000000-0xA0000FFF)
2#VadInclude2VpnFrom655361to655362.(0xA0001000-0xA0002FFF)
3#VadInclude2VpnFrom655365to655366.(0xA0005000-0xA0006FFF)
4#VadInclude2VpnFrom655367to655368.(0xA0007000-0xA0008FFF)
5#VadInclude2VpnFrom655369to655370.(0xA0009000-0xA000AFFF)
6#VadInclude2VpnFrom655371to655372.(0xA000B000-0xA000CFFF)
8#VadInclude2VpnFrom655375to655376.(0xA000F000-0xA0010FFF)
10#VadInclude2VpnFrom655379to655380.(0xA0013000-0xA0014FFF)
1#VadInclude1VpnFrom655360to655360.(0xA0000000-0xA0000FFF)
5#VadInclude2VpnFrom655367to655368.(0xA0007000-0xA0008FFF)
8#VadInclude2VpnFrom655373to655374.(0xA000D000-0xA000EFFF)
12#VadInclude2VpnFrom655381to655382.(0xA0015000-0xA0016FFF)
FreeVM'sbaseaddress:
0xA0003000.Size:
0x2000.
4#VadInclude2VpnFrom655367to655368.(0xA0007000-0xA0008FFF)
8#VadInclude2VpnFrom655375to655376.(0xA000F000-0xA0010FFF)
TotalVpnfrom655360to657407.(0xA0000000-0xA07FFFFF)
1#VadInclude1VpnFrom655360to655360.(0xA0000000-0xA0000FFF)
2#VadInclude2VpnFrom655361to655362.(0xA0001000-0xA0002FFF)
3#VadInclude2VpnFrom655365to655366.(0xA0005000-0xA0006FFF)
4#VadInclude2VpnFrom655367to655368.(0xA0007000-0xA0008FFF)
5#VadInclude2VpnFrom655369to655370.(0xA0009000-0xA000AFFF)
7#VadInclude2VpnFrom655373to655374.(0xA000D000-0xA000EFFF)
9#VadInclude2VpnFrom655377to655378.(0xA0011000-0xA0012FFF)
11#VadInclude2VpnFrom655381to655382.(0xA0015000-0xA0016FFF)
ZeroedPhysicalPageCount:
0.
TotalVpnfrom655360to657407.(0xA0000000-0xA07FFFFF)
1#VadInclude1VpnFrom655360to655360.(0xA0000000-0xA0000FFF)
2#VadInclude2VpnFrom655361to655362.(0xA0001000-0xA0002FFF)
3#VadInclude2VpnFrom655365to655366.(0xA0005000-0xA0006FFF)
4#VadInclude2VpnFrom655367to655368.(0xA0007000-0xA0008FFF)
5#VadInclude2VpnFrom655369to655370.(0xA0009000-0xA000AFFF)
7#VadInclude2VpnFrom655373to655374.(0xA000D000-0xA000EFFF)
9#VadInclude2VpnFrom655377to655378.(0xA0011000-0xA0012FFF)
11#VadInclude2VpnFr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物理 存储器 进程 逻辑 地址 空间 管理 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)