欢迎来到天天文库
浏览记录
ID:56245238
大小:600.50 KB
页数:6页
时间:2020-03-24
《操作系统原理实验-系统内存使用统计5.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、-6-上海电力学院计算机操作系统原理实验报告题目: 动态链接库的建立与调用 院系: 计算机科学与技术学院 专业年级: 信息安全2010级 学生姓名: 李鑫 学号: 20103277同组姓名: 无 2012年 11月 28日上海电力学院-6-实验报告课程名称计算机操作系统原理 实验项目线程的同步姓名李鑫学号20103277班级2010251班专业信息安全同组人姓名无指导教师姓名徐曼实验日期2012/11/28实验目的和要求:(l)了解Windows内存管理机制,理解页式存储管理技术。(2)熟悉Win
2、dows内存管理基本数据结构。(3)掌握Windows内存管理基本API的使用。实验原理与内容使用Windows系统提供的函数和数据结构显示系统存储空间的使用情况,当内存和虚拟存储空间变化时,观察系统显示变化情况。实验平台与要求能正确使用系统函数GlobalMemoryStatus()和数据结构MEMORYSTATUS了解系统内存和虚拟空间使用情况,会使用VirtualAlloc()函数和VirtualFree()函数分配和释放虚拟存储空间。操作系统:Windows2000或WindowsXP实验平台:VisualStudioC++6
3、.0实验步骤与记录1、启动安装好的VisualC++6.0。2、选择File->New,新建Win32ConsoleApplication程序,由于内存分配、释放及系统存储空间使用情况均是MicrosoftWindows操作系统的系统调用,因此选择AnapplicationthatsupportMFC。单击确定按钮,完成本次创建。3、创建一个支持MFC的工程,单击完成。-6-1、打开编辑环境后,编辑程序,并且编译、链接并运行该程序。-6-1、实验分析与结论该程序完成了内存空间的显示、申请及释放。开始时,可用物理内存为747M,可用页文
4、件大小为2524M,可用虚拟内存为2021M。使用函数VirtualAlloca()和malloc()分配了32M虚拟内存和2M物理内存后,系统显示可用物理内存为745M,少了2M,可用页文件大小为2490M,少了34M,可用虚拟内存为1987M,少了32M,当使用了VirtualAlloc()和free()函数后,只有可用物理内存没有达到预定的747M,只为746M,少了1M,其他恢复申请前状况。当多次运行程序后发现,可用物理内存有时候有可以恢复,所以得出与系统有关系,不是程序的关系。主要源代码://GetMemoryStatus.
5、cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"GetMemoryStatus.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif/////////////////////////////////////////////////////////////////////////////-6-//Theoneand
6、onlyapplicationobjectCWinApptheApp;usingnamespacestd;voidGetMemSta(void);int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;LPVOIDBaseAddr;char*str;GetMemSta();printf("NowAllocate32MVirtualMemoryand2MPhysicalMemory");BaseAddr=VirtualAlloc(NULL,1024*1024*32,M
7、EM_RESERVE
8、MEM_COMMIT,PAGE_READWRITE);if(BaseAddr==NULL){printf("VirtualAllocateFail");}str=(char*)malloc(1024*1024*2);GetMemSta();printf("NowRelease32MVirtualMemoryand2MPhysicalMemory");if(VirtualFree(BaseAddr,0,MEM_RELEASE)==0){printf("ReleaseAllocateFail");}f
9、ree(str);GetMemSta();returnnRetCode;}voidGetMemSta(){MEMORYSTATUSMemInfo;GlobalMemoryStatus(&MemInfo);printf("
此文档下载收益归作者所有