1 / 21
文档名称:

物理存储器与进程逻辑地址空间的管理实验报告.doc

格式:doc   大小:611KB   页数:21页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

物理存储器与进程逻辑地址空间的管理实验报告.doc

上传人:世界末末日 2024/3/25 文件大小:611 KB

下载得到文件列表

物理存储器与进程逻辑地址空间的管理实验报告.doc

相关文档

文档介绍

文档介绍:该【物理存储器与进程逻辑地址空间的管理实验报告 】是由【世界末末日】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【物理存储器与进程逻辑地址空间的管理实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。课程名称操作系统实验课程编号实验项目名称物理存储器与进程逻辑地址空间的管理学号年级计算机科学姓名专业与技术计算机科学与技学生所在学院指导教师术学院实验室名称地点哈尔滨工程大学计算机科学与技术学院..物理存储器与进程逻辑地址空间的管理一(实验概述:::1)通过查看物理存储器的使用情况,并练****分配和回收物理内存,从而掌握物理存储器的管理方法;2)通过查看进程逻辑地址空间的使用情况,并练****分配和回收虚拟内存,从而掌握进程逻辑地址空间的管理方法。:验证、:1)准备实验,创建一个EOSKernel项目;2)阅读控制台命令“pm”相关的源代码,并查看其执行的结果;)分配物理页和释放物理页;34)阅读控制台命令“vm”相关的源代码,并查看执行的结果;5)在系统进程中分配虚拟页和释放虚拟页;6)在应用程序进程中分配虚拟页和释放虚拟页。二(实验环境操作系统:windowsXP编译器:TevalatonOSLab语言:C三(:MiAllocateAny函数流程图:’...MiFreePages函数流程图::1)新建一个EOSKernel项目;2)阅读ke/,学****pm”命令是如何统计并输出物理存储器信息的。在阅读的过程中应注意:?在统计输出物理存储器信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行的过程中有其它线程分配或者释放物理页;?全局变量MiTotalPageFrameCount保存了物理页的总数。每个物理页的大小是4KB,由宏PAGE_SIZE定义;?全局变量MiZeroedPageCount和MiFreePageCount分别保存了零页和空闲页的数量;?计算已用物理页数量的方法是:物理页总数减去零页数量,再减去空闲页数量。3)生成所创建的项目,启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后回车,观察命令执行的结果。’...4)将修改后的ConsoleCmdPhysicalMemory函数进行替换,主要是在原有代码的后面添加了分配物理页和释放物理页的代码,生成修改后的EOSKernel项目,启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车;5)结束调试,在调用MiAllocateAnyPages函数的代码行添加一个断点,在调用MiFreePages函数的代码行添加一个断点;6)启动调试,待EOS启动完毕,在EOS控制台中输入命令“pm”后按回车,pm命令开始执行后,会在调用MiAllocateAnyPages函数的代码行处中断,按F11(逐语句)调试进入MiAllocateAnyPages函数;’...按F10(逐过程)单步调试MiAllocateAnyPages函数的执行过程:7)继续执行,,会在调用MiFreePages函数的代码行处中断,按F11(逐语句)调试进入MiFreePages函数;按F10(逐过程)单步调试MiFreePages函数的执行过程:’...’...8)阅读控制台命令“vm”相关的代码,并查看执行结果。阅读ke/,学****vm”命令是如何统计并输出进程的虚拟地址描述符信息的,注意一下几点:?与“pm””命令输出的是整个系统的物理存储器的使用情况不同,“vm”命令输出的是某个进程的虚拟地址描述符信息,所以“vm”命令使用了一个参数——进程ID,用来指定一个进程。这个进程既可以是系统进程,也可以是用户进程;?在统计输出指定进程的虚拟地址描述符信息之前要关闭中断,之后要打开中断,这样可以防止在命令执行的过程中有其它线程分配或者释放虚拟页;?EOS操作系统的进程有4G的虚拟地址空间,但并不是所有的虚拟地址空间都使用虚拟地址描述符来管理,有一些地址空间是静态的,还有一些地址空间由其他的动态方式来管理(例如系统内存池);?进程4G虚拟地址空间中由虚拟地址描述符所管理空间的低地址和高地址是固定的,在这段地址空间中,如果有虚拟页被占用,就会使用虚拟地址描述符来标识,并放入链表中管理;9)启动调试,待EOS启动完毕,在EOS控制台中输入命令“pt”后按回车。“pt”;命令可以输出当前系统中的进程列表,其中系统进程的ID为1在EOS控制台中输入命令“vm1”后按回车,观察命令执行的结果:’...系统进程中由虚拟地址描述符所管理的虚拟页只会分配给进程的句柄表(句柄表占用一个虚拟页)和线程的堆栈(堆栈占用两个虚拟页)。结合之前“pt”命令输出的进程和线程信息可知,当前系统中只有1个系统进程以及10个系统线程,所以在上图中,1号描述符所包含的一个虚拟页即为系统进程的句柄表,而2到11号这10个描述符所分别包含的两个虚拟页即为10个系统线程的堆栈。10),并保存,启动调试,待EOS启动完毕,在EOS控制台中输入命令“A:\”后按回车。,由于此进程执行了一个死循环,所以此进程不会结束执行,除非关闭虚拟机;11)切换到“Console-2”,然后输入命令“pt”后按回车。输出的信息如图所示。其中ID为31的进程就是应用程序进程,ID为33的线程就是应用程序进程的主线程;’...12)输入命令“vm1”后按回车,可以查看系统进程中虚拟地址描述符的信息。输出的信息如图所示。与第9步图比较可知,3号描述符所包含的一个虚拟页即为应用程序进程的句柄表,13号描述符所包含的两个虚拟页即为应用程序进程主线程的堆栈;13)输入命令“vm31”后按回车,可以查看应用程序进程中虚拟地址描述符的信息;’...