




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业操作系统 实验报告实验序号:11实验项目名称:系统内存使用统计学号姓名专业、班12软金2班实验地点实1#418指导教师李远敏实验时间2014-12-30一、实验目的及要求(1)了解Windows内存管理机制,理解页式存储管理技术。(2)熟悉Windows内存管理基本数据结构。(3)掌握Windows内存管理基本API的使用。二、实验设备(环境)及要求一台WindowsXP操作系统的计算机。计算机装有Microsoft Visual Studio C+6.0专业版或企业版。三、实验内容与步
2、骤1、相关系统数据结构说明系统结构MEMORYSTATUS中包含当前物理内存和虚拟内存信息,使用函数GlobalMemoryStatus()可以将这些信息存储在结构MEMORYSTATUS中。结构原型: Typedef struct MEMORYSTATUSDWORD dwLength; /MEMORYSTATUSDWORD dwMemoryLoad; /内存利用率DWORD dwTotalPhys; /物理内存大小DWORD dwAvailPhys; /空闲物理内存大小DWORD dwTotalPageFile; /页文件大小DWORD dwAvailPageFile; /空闲页文件大小DW
3、ORD dwTotalVirtual; /虚拟地址空间大小DWORD dwAvailVirtual; /空闲虚拟地址空间大小 MEMORYSTATUS, *LPMEMORYSTATUS; 成员说明:dwLength:MEMORYSTATUS数据结构的大小,单位为字节。dwMemoryLoad:当前内存利用率,取值范围为0100%,0表示内存没有被使用,100%表示内存全部被使用。dwTotalPhys:物理内存的总字节数。dwAvailPhys:可用物理内存的字节数。dwToatlPageFile:页文件的总字节数。页文件是虚拟内在系统占用的磁盘空间。dwAvailPageFile:页文件中可
4、用字节数。dwTotalVirtual:用户模式下调用进程可以访问的虚拟地址空间总字节数。dwAvailVirtual:用户模式下调用进程虚拟地址空间中未提交和未保留的内存总字节数,即可用虚拟地址空间大小。2、相关API函数介绍获取系统物理内存和虚拟内存使用信息。 原型: VOID GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer /指向MEMORYSTATUS数据结构);参数说明: LpBuffer:指向MEMORYSTATUS数据结构的指针,函数GlobalMemoryStatus()将内存的当前信息存储在该结构中。返回值: 该参数没有返回值一。保留或提
5、交某一段虚拟地址空间函数VirtualAlloc()可以在调用进程的虚拟地址空间中保留或提交若干页面。保留意味着这段虚拟地址不能被使用,当提交时,这段虚拟地址才真正被分配给该进程。原型:LPVOID VirtualAlloc( LPVOID lpAddress, /待分配空间的起始位置 DWORD dwSize, /待分配空间的大小 DWORD flAllocationType, /分配类型 DWORD flProtect /存取保护的类型参数说明:lpAddress:待分配空间的起始位置。若该值为NULL,系统将为其分配一合适的起始地址,否则用户要指定一个准确的起始地址。dwSize:待分配
6、空间的大小。如果参数lpAddress不为NULL,则待分配空间在lpAddresslpAddress+dwSize范围内。flAllocationType:分配类型,可以为表11-1所列标志的任意组合。表11-1 标志描述标志描述MEM COMMIT提交,即在内存或磁盘页文件中分配物理内存MEM RESERVE保留进程的虚拟地址空间,而不分配物理内存。保留的空间在没有被释放之前,不能被其他分配操作如Malloc()和LocalAlloc()使用。被保留的地址空间可随后使用VirtualAlloc()函数提交flProtect:指定存取保护的类型。若虚拟地址空间已经被提交,则在指定下面任何一个
7、属性时要随同PAGE GUARD(页保护)和PAGE NOCACHE(页无缓存)这两个属性。存取保护的类型如表11-2所示。表11-2 存取保护位的类型标志描述PAGE READONLY被提交的虚拟地址空间只读PAGE READWRITE被提交的虚拟地址空间可读/写PAGE EXECUTE被提交的虚拟地址空间可执行PAGE EXECUTE READ被提交的虚拟空间可执行、可读PAGE EXECUTE READWRITE被提交的虚拟空间可执行、可读/写PAGE GUARD保护PAGE NOACCESS不允许访问PAGE NOCACHE无缓存 返回值: 如果函数调用成功,则返回值为已分配虚拟地址空
8、间的起始地址。如果函数调用失败,则返回值为NULL。若要得到更多的错误信息,可调用GetLastError()函数。释放或注销某一段虚拟地址空间 函数VirtualFree()用于释放或注销某一段虚拟地址空间。 原型: BOOL VirtualFree(LPVOID lpAddress, /待分配空间的起始位置DWORD dwSize, /待分配空间的大小DWORD dwFreeType /释放操作类型);参数说明:lpAddress:待释放空间的起始位置。如果dwFreeType值为MEM RELEASE,该参数必须使用VirtualAlloc()函数返回的地址。dwSize:待释放空间的大
9、小。如果dwFree值为MEM RELEASE,该参数必须为0,否则待释放空间在lpAddresslpAddress+dwSize范围内。dwFreeType:释放类型。可以为表11-3所示标志的任意组合。 表11-3 释放类型标志描述MEM DECOMMIT注销提交,如果注销一个没有提交的虚拟地址空间,也不会导致失败,即提交或没有提交的虚拟地址空间都可以注销MEM RELEASE释放保留的虚拟地址空间,如果使用该标志,dwSize参数必须为0,否则函数失败返回值:如果函数调用成功,则返回值为非零。如果函数调用失败,则返回值为零。若要得到更多的错误信息,可调用GetLastError()函数。
10、分配内存空间 原型:Void * malloc(size t size);参数说明: Size:要分配内存大小,单位为B(字节)。返回值: 该函数返回分配内存空间void类型的指针。如果返回NULL,说明没有有效的内存空间可供分配。释放内存空间 原型: Void free(void * memblock); 参数说明:* memblock:要释放的内存地址。 返回值: 无。 用法举例: / * MALLOC. C:This program allocates memorywith * malloc,then frees the memory with free. * / # include /
11、 * For MAX PATH definition * / # include # include Void main(void)Char * string; / * Allocate space for a pat name * / string=malloc( MAX PATH); /分配内存空间 if(string=NULL) prinf(“Insufficient memoryavailablen”); else printf(“Memory space allocated for path namen”):free(string);printf(“Memory free n”);3、实验要求能正确使用系统函数GlobalMemoryStatus()和数据结构MEMORYSTATUS 了解系统内存和虚拟存储空间使用情况,会使用VirtualAlloc()函数VirtualFree()函数分配和释放虚拟存储空间。4、实验指导在Microsoft Visual C+6.0环境下选择Win32 Console Application 建立一个控制台工程文件,由于内存分配、释放及系统存储空间使用情况函数均是Microsoft Windows操作系统的系统调用,因此需要选择An application that supports MFC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025如何设计合同终止的条款
- 2025室内装修施工劳务分包合同样本
- 2025食品原料采购合同书
- 2025苏州商品房买卖合同范本【打印】
- 2025工程设计合同模板
- 2025供暖系统管道改造合同
- 2025购销合同(电子产品)范文
- 2025建筑项目工程总承包合同模板
- 2025合作协议与合同条款
- 2025租房消防安全责任合同书
- 医院医疗质量管理委员会会议记录五篇
- 医院感染与流行性腮腺炎防控
- 学校关于铸牢中华民族共同体意识宣传教育工作的总结
- 低代码平台开发方案
- Unit5SectionB2a-2e阅读课件人教版九年级英语全册
- 国开《国家开放大学学习指南》学习网形考参考答案
- 耳鼻喉科技术操作规范
- 腹腔镜胃癌根治术护理教学查房
- DB23T 2334-2019 装配式混凝土渠道应用技术规范
- 中职资料:第1讲 社会主义在中国的确立与探索+课件
- 诺如病毒感染诊断和治疗
评论
0/150
提交评论