3.2windows2000内存结构(120分钟).docx

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

文档评论(0)

bcll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档