操作系统实验七Word文档下载推荐.docx

上传人:b****1 文档编号:3607572 上传时间:2023-05-02 格式:DOCX 页数:17 大小:677.79KB
下载 相关 举报
操作系统实验七Word文档下载推荐.docx_第1页
第1页 / 共17页
操作系统实验七Word文档下载推荐.docx_第2页
第2页 / 共17页
操作系统实验七Word文档下载推荐.docx_第3页
第3页 / 共17页
操作系统实验七Word文档下载推荐.docx_第4页
第4页 / 共17页
操作系统实验七Word文档下载推荐.docx_第5页
第5页 / 共17页
操作系统实验七Word文档下载推荐.docx_第6页
第6页 / 共17页
操作系统实验七Word文档下载推荐.docx_第7页
第7页 / 共17页
操作系统实验七Word文档下载推荐.docx_第8页
第8页 / 共17页
操作系统实验七Word文档下载推荐.docx_第9页
第9页 / 共17页
操作系统实验七Word文档下载推荐.docx_第10页
第10页 / 共17页
操作系统实验七Word文档下载推荐.docx_第11页
第11页 / 共17页
操作系统实验七Word文档下载推荐.docx_第12页
第12页 / 共17页
操作系统实验七Word文档下载推荐.docx_第13页
第13页 / 共17页
操作系统实验七Word文档下载推荐.docx_第14页
第14页 / 共17页
操作系统实验七Word文档下载推荐.docx_第15页
第15页 / 共17页
操作系统实验七Word文档下载推荐.docx_第16页
第16页 / 共17页
操作系统实验七Word文档下载推荐.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统实验七Word文档下载推荐.docx

《操作系统实验七Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统实验七Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。

操作系统实验七Word文档下载推荐.docx

实验室名称地点

 

一、实验概述

1.实验名称

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

2.实验目的

熟悉操作系统集成实验环境OSLab的基本使用方法。

练习编译、调试EOS操作系统内核以及EOS应用程序。

3.实验类型

验证

二、实验环境

OSLab

三、实验过程

3.2执行控制台命令“pm”,查看物理存储器的信息

3.3分配物理页和释放物理页

在1091和1103行插入断点

监视分配物理页

释放物理页

按F10单步调试MiAllocateAnyPages函数的执行过程,尝试回答下面的问题:

(1)本次分配的物理页的数量是1,分配的页框号是0x409

(2)物理页是从空闲页链表中分配的

(3)第226和227行:

MiFreePageListHead=MiGetPfnDatabaseEntry(Pfn)->

Next;

MiFreePageCount--;

减少了空闲页的数量;

第229行将刚刚分配的物理页由空闲状态改为忙状态

(4)MiAllocateAnyPages函数的流程图

按F10单步调试MiFreePages函数的执行过程,尝试回答下面的问题:

(1)本次释放的物理页数为1,释放的物理页的页框号是0x409,释放的物理页是之前分配的物理页码

(2)释放的物理页被放入了空闲链表

(3)MiFreePages函数流程图

将分配和释放的物理页数设为2,调试后运行结果:

3.4阅读控制台命令“vm”相关的源代码,并查看其执行的结果

输入命令pt

输入命令vm1

导入LoopApp.exe,输入命令A:

\LoopApp.exe后

输入pt后

输入vm1后

输入vm31后

3.5在系统进程中分配虚拟页和释放虚拟页

输入vm1命令后

输入vm1命令后在MmAllocateVirtualMemory函数处中断

此时BaseAddress和RegionSize初始值

进入MmAllocateVirtualMemory函数

调试MmAllocateVirtualMemory函数完成后

按F10单步调试MmAllocateVirtualMemory函数的执行过程中,尝试回答下列问题:

(1)分配的虚拟页的起始地址是0xa0003000,分配的虚拟页数量是1,BaseAddress和RegionSize初始化的值是期望保留或者提交的地址区域的起始地址和大小

(2)分配虚拟页的同时有为虚拟页映射实际的物理页,是由第三个参数AllocationType决定的

(3)分配的虚拟页是在系统地址空间(高2G),是由第四个参数SystemVirtual决定的

(4)MiReserveAddressRegion函数的功能是保留一段虚拟地址区域

按F5继续调试,在调用MmFreeVirtualMemory函数的代码行处中断

按F11调试进入MmFreeVirtualMemory函数

调试MmFreeVirtualMemory函数完毕后

按F10单步调试MmFreeVirtualMemory函数的执行过程中,尝试回答下列问题:

(1)本次释放的虚拟地址是0xa0003000,释放的虚拟页是之前分配的虚拟页

(2)MiFindReservedAddressRegion函数用于查找以保留地址区域,如果目标区域不是已保留区域则返回失败;

MiFreeAddressRegion函数用于释放已保留地址区域;

MiDecommitPages函数用于释放映射在连续虚拟页框上的物理页框

将RegionSize的值设置为PAGE_SIZE+1后

设置为PAGE_SIZE*2+1后

将BaseAddress参数的值设置为已经被占用的虚拟内存0xA0000000

将RegionSize的值设置为PAGE_SIZE*2BaseAddress参数的值设置为0x0017004

3.6在应用程序进程中分配虚拟页和释放虚拟页

代码如下:

#include"

EOSApp.h"

intmain(intargc,char*argv[])

{

#ifdef_DEBUG

__asm("

int$3\nnop"

);

#endif

INT*d;

if(d=VirtualAlloc(0,sizeof(int),MEM_RESERVE|MEM_COMMIT))

printf("

Allocated%dbytesvirtualmemoryof0x%x\n\n"

sizeof(int),d);

printf("

virtualmemoryoriginalvalue:

0x%x\n\n"

*d);

*d=0xFFFFFFFF;

virtualmemorynewvalue:

\nWaitfor10seconds\n"

Sleep(10000);

if(VirtualFree(d,0,MEM_RELEASE))

\nRealeasevirtualmemorysuccess!

\n"

else

//若释放不成功,打印输出错误,并返回-1。

VirtualFreeError!

return-1;

}

\nEndlessloop!

"

//进入死循环

for(;

;

){;

}

return0;

else

//若分配不成功,打印输出错误,并返回-1。

VirtualAllocError!

return-1;

Helloworld!

return0;

按F5调试

此时在控制台2中输入vm31

10秒后

此时在控制台2中输入vm31

四、思考题

五、实验体会

通过本次实验,练习分配和回收物理内存,我掌握了物理存储器的管理方法,通过查看进程逻辑地址空间的使用情况并练习分配和回收虚拟内存,掌握了进程逻辑地址空间的管理方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2