- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 ”菜单中的“ Compile 5-1.cpp ”命令,并单击“是”按钮确
您可能关注的文档
最近下载
- 关于移动医疗的PPT大纲.pptx VIP
- 西门子制造执行系统(MES).pdf VIP
- 2020年全国中小学生天文观测竞赛天文知识竞赛部分决赛试题(小学组).docx VIP
- 水知道答案市公开课一等奖省赛课微课金奖PPT课件.pptx
- GB 55020-2021 建筑给水排水与节水通用规范.docx
- GB28007-2024婴幼儿及儿童家具安全技术规范.pdf
- 信息管理系统住院护士站需求调研分析报告模版.pdf VIP
- 2020年北京市中小学生天文观测竞赛天文知识竞赛试卷(初中组).docx VIP
- 2024年必威体育官网网址知识测试卷含答案.doc
- 室外给水管道安装施工质量验收规范.docx VIP
文档评论(0)