- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验九 存储管理
[1]Windows Xp内存结构
背景知识
Windows Xp是32位的操作系统,它使计算机CPU可以用32位地址对32位内存块进行操作。内存中的每一个字节都可以用一个32位的指针来寻址。这样,最大的存储空间就是232字节或4000兆字节 (4GB) 。这样,在Windows下运行的每一个应用程序都认为能独占可能的4GB大小的空间
而另一方面,实际上没有几台机器的RAM能达到4GB,更不必说让每个进程都独享4GB内存了。Windows在幕后将虚拟内存 (virtual memory,VM) 地址映射到了各进程的物理内存地址上。而所谓物理内存是指计算机的RAM和由Windows分配到用户驱动器根目录上的换页文件。物理内存完全由系统管理。
实验目的
通过实验了解windowsXp内存的使用,学习如何在应用程序中管理内存、体会Windows应用程序内存的简单性和自我防护能力。
了解windowsXp的内存结构和虚拟内存的管理,进而了解进程堆和windows为使用内存而提供的一些扩展功能。
工具/准备工作
您需要做以下准备:
一台运行Windows Xp Professional操作系统的计算机
计算机中需安装Visual C++ 6.0专业版或企业版
实验内容与步骤
Windows提供了一个API即GetSystemInfo() ,以便用户能检查系统中虚拟内存的一些特性。程序5-1显示了如何调用该函数以及显示系统中当前内存的参数。
步骤1:登录进入Windows Xp Professional。
步骤2:在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”–“Microsoft Visual C++ 6.0”命令,进入Visual C++窗口。
步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序5-1.cpp。
程序5-1:获取有关系统的内存设置的信息
// 工程vmeminfo
#include windows.h
#include iostream
#include shlwapi.h
#include iomanip
#pragma comment(lib, shlwapi.lib)
void main()
{
// 首先,让我们获得系统信息
SYSTEM_INFO si;
:: ZeroMemory(si, sizeof(si) ) ;
:: GetSystemInfo(si) ;
// 使用外壳辅助程序对一些尺寸进行格式化
TCHAR szPageSize[MAX_PATH];
::StrFormatByteSize(si.dwPageSize, szPageSize, MAX_PATH) ;
DWORD dwMemSize = (DWORD)si.lpMaximumApplicationAddress -
(DWORD) si.lpMinimumApplicationAddress;
TCHAR szMemSize [MAX_PATH] ;
:: StrFormatByteSize(dwMemSize, szMemSize, MAX_PATH) ;
// 将内存信息显示出来
std :: cout Virtual memory page size: szPageSize std :: endl;
std :: cout.fill (0) ;
std :: cout Minimum application address: 0x
std :: hex std :: setw(8)
(DWORD) si.lpMinimumApplicationAddress
std :: endl;
std :: cout Maximum application address: 0x
std :: hex std :: setw(8)
(DWORD) si.lpMaximumApplicationAddress
std :: endl;
std :: cout Total available virtual memory:
szMemSize std :: endl ;
}
步骤4:单击“Build”菜单中的“Compile 5-1.cpp”命令,并单击“是”按钮确认。系统对5-1.cp
文档评论(0)