物理存储器和逻辑内存的管理)
操作系统 实 验 报 告
哈尔滨工程大学 计算机科学与技术学院
一、实验概述
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




