操作系统原理实验系统内存使用统计5.docx

上传人:b****4 文档编号:26743995 上传时间:2023-06-22 格式:DOCX 页数:7 大小:188.36KB
下载 相关 举报
操作系统原理实验系统内存使用统计5.docx_第1页
第1页 / 共7页
操作系统原理实验系统内存使用统计5.docx_第2页
第2页 / 共7页
操作系统原理实验系统内存使用统计5.docx_第3页
第3页 / 共7页
操作系统原理实验系统内存使用统计5.docx_第4页
第4页 / 共7页
操作系统原理实验系统内存使用统计5.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

操作系统原理实验系统内存使用统计5.docx

《操作系统原理实验系统内存使用统计5.docx》由会员分享,可在线阅读,更多相关《操作系统原理实验系统内存使用统计5.docx(7页珍藏版)》请在冰豆网上搜索。

操作系统原理实验系统内存使用统计5.docx

操作系统原理实验系统内存使用统计5

操作系统原理实验-系统内存使用统计5

上海电力学院

计算机操作系统原理

实验报告

 

题目:

 动态链接库的建立与调用                    

院系:

 计算机科学与技术学院 

专业年级:

 信息安全2010级 

学生姓名:

 李鑫 学号:

 20103277

同组姓名:

 无 

 

2012年 11月 28日

上海电力学院

实验报告

课程名称计算机操作系统原理 实验项目线程的同步

姓名李鑫学号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的工程,单击完成。

4、打开编辑环境后,编辑程序,并且编译、链接并运行该程序。

5、

实验分析与结论

该程序完成了内存空间的显示、申请及释放。

开始时,可用物理内存为747M,可用页文件大小为2524M,可用虚拟内存为2021M。

使用函数VirtualAlloca()和malloc()分配了32M虚拟内存和2M物理内存后,系统显示可用物理内存为745M,少了2M,可用页文件大小为2490M,少了34M,可用虚拟内存为1987M,少了32M,当使用了VirtualAlloc()和free()函数后,只有可用物理内存没有达到预定的747M,只为746M,少了1M,其他恢复申请前状况。

当多次运行程序后发现,可用物理内存有时候有可以恢复,所以得出与系统有关系,不是程序的关系。

主要源代码:

//GetMemoryStatus.cpp:

Definestheentrypointfortheconsoleapplication.

//

#include"stdafx.h"

#include"GetMemoryStatus.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//Theoneandonlyapplicationobject

CWinApptheApp;

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");

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);

}

 

注:

实验报告内容原则上包括:

实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1