操作系统:实验4 存储管理(实验报告)

更新时间:2024-03-01 18:22:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验

4

存储管理

班级: 姓名: 学号:

4.1 Windows内存结构

本节实验的目的是:

1) 通过实验了解Windows内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力。

2) 了解Windows的内存结构和虚拟内存的管理,进而了解进程堆和Windows为使用内存而提供的一些扩展功能。

1. 工具/准备工作

在开始本节实验之前,请回顾教材的相关内容。

需要准备一台运行Windows系统的计算机,且安装了C/C++编译器。 2. 实验内容与步骤

步骤1:找到“labReportCode”文件夹并打开源程序4-1.cpp。 步骤2:对4-1.cpp进行编译、链接,生成可执行文件4-1.exe。

操作能否正常进行?__________________________________________________ 步骤3:运行4-1.exe。 请记录:运行结果:

1) 虚拟内存每页容量为:______________________________________________ 2) 最小应用地址:____________________________________________________ 3) 最大应用地址:____________________________________________________ 4) 当前可供应用程序使用的内存空间为:________________________________ 5) 当前计算机的实际内存大小为:______________________________________ 分析程序4-1,请回答问题:

1) 理论上每个Windows应用程序可以独占的最大存储空间是:_____________ 2) 程序中,用于检查系统中虚拟内存特性的API函数是:__________________

4.2 Windows虚拟内存

本节实验的目的是:

1) 通过实验了解Windows内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力。

2) 学习检查虚拟内存空间或对其进行操作;

3) 了解Windows的内存结构和虚拟内存的管理,进而了解进程堆和Windows为使用内存而提供的一些扩展功能。

1. 工具/准备工作

在开始本节实验之前,请回顾教材的相关内容。

需要准备一台运行Windows系统的计算机,且安装了C/C++编译器。 2. 实验内容与步骤

(1) 虚拟内存的检测

步骤1:找到“labReportCode”文件夹并打开源程序4-2.cpp。 步骤2:对4-2.cpp进行编译、链接,生成可执行文件4-2.exe。

操作能否正常进行?__________________________________________________ 步骤3:运行4-2.exe。

1) 运行结果(按committed、reserved、free分别记录实验数据,每种写出5个即可)。 将系统当前的自由区(free)虚拟地址空间填入表4.1中。

表4.1 实验记录

地址 大小 虚拟地址 空间类型 free free free free free 访问权限 描述 将系统当前的已调配区(committed)虚拟地址空间填入表4.2中。

表4.2 实验记录

地址 大小 虚拟地址 空间类型 committed committed committed committed committed 访问权限 描述 将系统当前的保留区(reserved)虚拟地址空间填入表4.3中。

表4.3 实验记录

地址 大小 虚拟地址 空间类型 reserved reserved reserved reserved reserved 访问权限 描述 2) 根据运行结果,请简单描述程序运行的流程:

____________________________________________________________________ ________________________________________________________________________ ________________________________________________________________________ (2) 虚拟内存操作

步骤1:找到“labReportCode”文件夹并打开源程序4-3.cpp。 步骤2:对4-3.cpp进行编译、链接,生成可执行文件4-3.exe。

操作能否正常进行?__________________________________________________ 步骤3:运行4-3.exe。 运行结果(分行书写):

1) __________________________________________________________________ 2) __________________________________________________________________ 3) __________________________________________________________________ 4) __________________________________________________________________

分析程序4-3。为了给数据库保留1GB的内存空间,程序给出了内存分配的四种方法。 1) 程序中说明为___________________________________________________的程序段,该段程序试图利用标准C中的malloc() 函数,从已经已调配的小内存区获得内存。从运行结果看,这种技术成功了吗?_________________。

2) 程序中说明为___________________________________________________的程序段,该段程序试图通过VirtualAlloc()函数,然后利用物理备用内存将整个块分配到虚拟内存空间的任何位置。这种技术只对拥有1GB以上的RAM且都有换页文件的计算机可行。从运行结果看,这种技术成功了吗?_________________。

3) 程序中说明为___________________________________________________的程序段,该段程序利用VirtualAlloc()函数,如果函数成功,则获得大块内存,但不将任何物理内存调配到此块中。从运行结果看,这种技术成功了吗?_________________。

4) 程序中说明为___________________________________________________的程序段,该段程序保留1GB的内存区,然后将物理内存调配给其中的很小一部分(1MB)。这就是4-3介绍的处理一个假想的数据库应用程序的方法:保留整个块,然后按要求在其一小部分内进行读操作,让系统将用过的区域换页到磁盘中。

本文来源:https://www.bwwdw.com/article/udha.html

Top