- 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 ”菜单中的“
您可能关注的文档
- 10.浮力计算阶梯训练(教师用讲稿)1.docx
- 1分钟-2分钟-3分钟自我介绍.docx
- 1分钟挑战游戏.docx
- 1分钟搞懂常用钢材型号.docx
- 1分钟让你的皮肤变得又白又嫩.docx
- 1分钟跳绳教案[1].docx
- 2010届高考英语25分钟限时阅读天天练35.docx
- 2016监理继续教育试卷与答案房屋建筑73分.docx
- 3-5分钟英语演讲稿(30篇).docx
- 30分钟决定你面试的成败.docx
- 地理-内蒙古锡林郭勒盟2023~2024学年第一学期高三年级全盟统考试题和答案.docx
- 历史|湖北元月调考暨湖北省部分市州元月高三期末联考历史试卷及答案.docx
- 历史-内蒙古锡林郭勒盟2023~2024学年第一学期高三年级全盟统考试题和答案.docx
- 数学(理科)-内蒙古锡林郭勒盟2023~2024学年第一学期高三年级全盟统考试题和答案.docx
- 历史丨金太阳24~239C湖北省十堰市2024届高三上学期1月调研考试历史试卷及答案.docx
- 青岛某高层办公楼地下防水施工方案(sbs卷材).docx
- 土木工程实习报告表格.doc
- 工程流体力学教学课件ppt作者闻建龙工程流体力学习题答案部分.doc
- 围手术期管理制度(1)_0.doc
- 2023年公务员多省联考《申论》题(内蒙古旗县卷)及参考答案.doc
文档评论(0)