您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 操作系统原理实验-系统内存使用统计5
-1-上海电力学院计算机操作系统原理实验报告题目:动态链接库的建立与调用院系:计算机科学与技术学院专业年级:信息安全2010级学生姓名:李鑫学号:20103277同组姓名:无2012年11月28日上海电力学院-2-实验报告课程名称计算机操作系统原理实验项目线程的同步姓名李鑫学号20103277班级2010251班专业信息安全同组人姓名无指导教师姓名徐曼实验日期2012/11/28实验目的和要求:(l)了解Windows内存管理机制,理解页式存储管理技术。(2)熟悉Windows内存管理基本数据结构。(3)掌握Windows内存管理基本API的使用。实验原理与内容使用Windows系统提供的函数和数据结构显示系统存储空间的使用情况,当内存和虚拟存储空间变化时,观察系统显示变化情况。实验平台与要求能正确使用系统函数GlobalMemoryStatus()和数据结构MEMORYSTATUS了解系统内存和虚拟空间使用情况,会使用VirtualAlloc()函数和VirtualFree()函数分配和释放虚拟存储空间。操作系统:Windows2000或WindowsXP实验平台:VisualStudioC++6.0实验步骤与记录1、启动安装好的VisualC++6.0。2、选择File-New,新建Win32ConsoleApplication程序,由于内存分配、释放及系统存储空间使用情况均是MicrosoftWindows操作系统的系统调用,因此选择AnapplicationthatsupportMFC。单击确定按钮,完成本次创建。3、创建一个支持MFC的工程,单击完成。-3-4、打开编辑环境后,编辑程序,并且编译、链接并运行该程序。-4-5、实验分析与结论该程序完成了内存空间的显示、申请及释放。开始时,可用物理内存为747M,可用页文件大小为2524M,可用虚拟内存为2021M。使用函数VirtualAlloca()和malloc()分配了32M虚拟内存和2M物理内存后,系统显示可用物理内存为745M,少了2M,可用页文件大小为2490M,少了34M,可用虚拟内存为1987M,少了32M,当使用了VirtualAlloc()和free()函数后,只有可用物理内存没有达到预定的747M,只为746M,少了1M,其他恢复申请前状况。当多次运行程序后发现,可用物理内存有时候有可以恢复,所以得出与系统有关系,不是程序的关系。主要源代码://GetMemoryStatus.cpp:Definestheentrypointfortheconsoleapplication.//#includestdafx.h#includeGetMemoryStatus.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif/////////////////////////////////////////////////////////////////////////////-5-//TheoneandonlyapplicationobjectCWinApptheApp;usingnamespacestd;voidGetMemSta(void);int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;LPVOIDBaseAddr;char*str;GetMemSta();printf(NowAllocate32MVirtualMemoryand2MPhysicalMemory\n\n);BaseAddr=VirtualAlloc(NULL,1024*1024*32,MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE);if(BaseAddr==NULL){printf(VirtualAllocateFail\n);}str=(char*)malloc(1024*1024*2);GetMemSta();printf(NowRelease32MVirtualMemoryand2MPhysicalMemory\n\n);if(VirtualFree(BaseAddr,0,MEM_RELEASE)==0){printf(ReleaseAllocateFail\n);}free(str);GetMemSta();returnnRetCode;}voidGetMemSta(){MEMORYSTATUSMemInfo;GlobalMemoryStatus(&MemInfo);printf(CurrentMemoryStatusis:\n);-6-printf(\tTotalPhysicalMemoryis%dMB\n,MemInfo.dwTotalPhys/(1024*1024));printf(\tAvailablePhysicalMemoryis%dMB\n,MemInfo.dwAvailPhys/(1024*1024));printf(\tTotalPageFileis%dMB\n,MemInfo.dwTotalPageFile/(1024*1024));printf(\tAvailablePageFileis%dMB\n,MemInfo.dwAvailPageFile/(1024*1024));printf(\tTotalVirtualmemoryis%dMB\n,MemInfo.dwTotalVirtual/(1024*1024));printf(\tAvailableVirtualmemoryis%dMB\n,MemInfo.dwAvailVirtual/(1024*1024));printf(\tMemoryLoadis%d%%\n\n,MemInfo.dwMemoryLoad);}注:实验报告内容原则上包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。
本文标题:操作系统原理实验-系统内存使用统计5
链接地址:https://www.777doc.com/doc-5429521 .html