欢迎来到天天文库
浏览记录
ID:46504439
大小:151.50 KB
页数:11页
时间:2019-11-24
《实验九存储管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验九存储管理[1]WindowsXp内存结构背景知识WindowsXp是32位的操作系统,它使计算机CPU可以用32位地址对32位内存块进行操作。内存中的每一个字节都可以用一个32位的指针来寻址。这样,最大的存储空间就是232字节或4000兆字节(4GB)。这样,在Windows下运行的每一个应川程序都认为能独占可能的4GB人小的空间而另一方面,实际上没有儿台机器的RAM能达到4GB,更不必说止每个进程都独亨4GB内存了。Windows在幕后将虚拟内存(virtualmemory,VM)地址映射到了各进程的物理内存地址上。而所谓物理内存是指计算机的
2、RAM和由Windows分配到川户驱动器根目录上的换页文件。物理内存完全由系统管理。实验目的1)通过实验了解windowsXp内存的使用,学习如何在应用程序中管理内存、体会Windows应用程序内存的简单性和自我防护能力。2)了解windowsXp的内存结构和虚拟内存的管理,进而了解进程堆和windows为使用内存而提供的一些扩展功能。工具/准备工作您需畧更以下准备:一台运行WindowsXpProfessional操作系统的计算机计算机中需安装VisualC++6.0专业版或企业版实验内容与步骤Windows提供了一个API即GetSystemIn
3、fo(),以便用户能检查系统中虚拟内存的一些特性。程序5-1显示了如何调用该函数以及显示系统中当前内存的参数。步骤1:登录进入WindowsXpProfessional。步骤2:在"开始"菜单中单击"程序”・"MicrosoftVisualStudio6.0v-aMicrosoftVisualC++6.0”命令,进入VisualC++窗口。步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序5-l.cppo程序5-1:获取有关系统的内存设置的信息//工程vmeminfo#include#include4、tream>#include#include#pragmaconiment(lib,"shlwapi.lib")voidmain(){〃首先,让我们获得系统信息SYSTEM_INFOsi;::ZcroMcmory(&si,sizcof(si));::GetSystemInfo(&si);//使用外壳辅助程序对一些尺寸进行格式化TCHARszPageSize[MAX_PATH];::StrFormatByteSize(si.dwPageSize,szPageSize,MAX_PATH);DWORDdwMemSiz5、e=(DWORD)si.lpMaximumApplicationAddress-(DWORD)si.lpMinimumApplicationAddress;TCHARszMcmSizc[MAX_PATH];::StrFormatByteSize(dwMemSize,szMemSize,MAX_PATH);//将内存信息显水Hl来std::cout«HVirtualmemorypagesize:H«szPageSize«std::endl;std::cout.fill('0');std::cout«"Minimumapplicationaddress:6、Ox"«std::hex«std::setw(8)«(DWORD)si.lpMinimumApplicationAddress«std::endl;std::cout«^Maximumapplicationaddress:0xn«std::hex«std::setw(8)«(DWORD)si.lpMaximumApplicationAddress«std::endl;std::cout«HTotalavailablevirtualmemory:H«szMemSize«std::endl;}步骤4:单击“Build”菜单中的“Compile5・l.cp7、p”命令,并单击“是”按钮确认。系统对5-l.cpp进行编译。步骤5:编译完成后,单击“Build”菜单中的“Build5-l.exe”命令,建立5・l.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?_不可以运行,#pragmacomment(lib,"shlwapi.lib")指令错误,在pragma与comment中间应汝有空格〔步骤6:在工具栏单击“ExecuteProgram”(执行程序)按钮,执行5J.exe程序。运行结果(分行书写。如果运行不成功,则可能的原因是什么?):1)虚拟内存每页容量为:4.00KB2)最小应用8、地址:0*000100003)最大应用地址:0*7ffeffff4)当前可供应川程序使川的内存空间为:2.0
4、tream>#include#include#pragmaconiment(lib,"shlwapi.lib")voidmain(){〃首先,让我们获得系统信息SYSTEM_INFOsi;::ZcroMcmory(&si,sizcof(si));::GetSystemInfo(&si);//使用外壳辅助程序对一些尺寸进行格式化TCHARszPageSize[MAX_PATH];::StrFormatByteSize(si.dwPageSize,szPageSize,MAX_PATH);DWORDdwMemSiz
5、e=(DWORD)si.lpMaximumApplicationAddress-(DWORD)si.lpMinimumApplicationAddress;TCHARszMcmSizc[MAX_PATH];::StrFormatByteSize(dwMemSize,szMemSize,MAX_PATH);//将内存信息显水Hl来std::cout«HVirtualmemorypagesize:H«szPageSize«std::endl;std::cout.fill('0');std::cout«"Minimumapplicationaddress:
6、Ox"«std::hex«std::setw(8)«(DWORD)si.lpMinimumApplicationAddress«std::endl;std::cout«^Maximumapplicationaddress:0xn«std::hex«std::setw(8)«(DWORD)si.lpMaximumApplicationAddress«std::endl;std::cout«HTotalavailablevirtualmemory:H«szMemSize«std::endl;}步骤4:单击“Build”菜单中的“Compile5・l.cp
7、p”命令,并单击“是”按钮确认。系统对5-l.cpp进行编译。步骤5:编译完成后,单击“Build”菜单中的“Build5-l.exe”命令,建立5・l.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?_不可以运行,#pragmacomment(lib,"shlwapi.lib")指令错误,在pragma与comment中间应汝有空格〔步骤6:在工具栏单击“ExecuteProgram”(执行程序)按钮,执行5J.exe程序。运行结果(分行书写。如果运行不成功,则可能的原因是什么?):1)虚拟内存每页容量为:4.00KB2)最小应用
8、地址:0*000100003)最大应用地址:0*7ffeffff4)当前可供应川程序使川的内存空间为:2.0
此文档下载收益归作者所有