第12章-内存管理实验ppt课件.ppt

第12章-内存管理实验ppt课件.ppt

ID:59767221

大小:659.00 KB

页数:34页

时间:2020-11-23

第12章-内存管理实验ppt课件.ppt_第1页
第12章-内存管理实验ppt课件.ppt_第2页
第12章-内存管理实验ppt课件.ppt_第3页
第12章-内存管理实验ppt课件.ppt_第4页
第12章-内存管理实验ppt课件.ppt_第5页
资源描述:

《第12章-内存管理实验ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第12章相关说明说明:(1)实验相关ppt内容选自《操作系统课程设计》的核心实验,本实验为内存管理实验,加强学生对内存分配的理解。(2)该实验中学生对windows操作系统api函数很陌生,缺乏对它们实践,以及对内存分配的原理认识不够,讲解时原理部分要重复讲解,督促学生多利用网络资源进一步加深对操作系统函数的理解,有遗力的同学可以学习Linux内核内存分配代码。第12章:内存管理实验提纲提纲实验目的了解WindowsXP/7及Linux内存管理机制。掌握页面虚拟存储技术。了解内存分配原理,特别是以页面为单位的虚拟内存分配方法。学会使用Win

2、dowsXP/7下内存管理的基本API函数。了解进程中内存分配与虚内存的区别;提纲实验内容运行vs,创建工程,并导入virtumem.cpp文件。再次编译,通过后直接在vs下运行,观察输出结果,确信六种虚存操作都出现过。看懂程序,要求另写一段小程序,获得当前系统的存储空间使用概况。编译、运行小程序,观察结果。打开memoryAlloc.cpp运行vs,直接编译memoryAlloc.cpp,创建了一个工程。编译、运行小程序,观察结果。实验内容小组任务根据实验课提供的Windows虚拟内存管理代码以及相关Linux内存管理知识在Linux系统

3、下完成同样功能的程序。提纲实验算法堆和栈的区别?栈(stack)堆(heap)区别申请方式系统自动分配需要程序员向操作系统申请,并指明大小,在C语言中使用malloc函数来分配分配条件操作若栈的剩余空间大于申请空间,则系统为程序分配内存;否则提示栈溢出遍历链表(操作系统中用于记录空闲内存地址的链表),找到第一个空间大于申请空间的堆结点,将该结点从链表中删除,并将该节点对应的存储空间分配给程序。申请大小限制在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存区域,即栈顶的地址和栈的最大容量是系统预先规定好的;在Windows下,栈

4、的大小是由编译器决定,通常为1M,如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。堆是向高地址扩展的数据结构,系统通过链表结构来组织,因此是不连续的内存区域。遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,容量也比较大。申请效率系统自动分配,速度较快,程序员无法控制。由new分配内存,使用方便,但是速度较慢,且容易产生内存碎片实验算法Windows系统存储器管理相关知识页面文件以磁盘文件的形式来存储没有装入内存的程序和数据文件部分,文件名为pagef

5、ile.sys,默认安装在系统盘的根目录下,属性为系统隐藏文件。通过系统设置可以使页面文件位于非系统盘的根目录下。虚拟内存页面文件和物理内存共同构成“虚拟内存”,必要情况下,Windows操作系统可将数据从页面文件移至内存,或将数据从内存移至页面文件,以便为新数据释放内存空间。实验算法Windows系统存储器管理相关知识Windows的虚拟存储技术Windows采用分页存储方式,实现虚拟内存技术,利用页面文件在内存中的调入调出实现物理内存的扩展。虚拟内存的页面状态A.提交页面:已经分得物理存储的虚拟地址页面,通过设定该区域的属性可对它加以保

6、护。B.保留页面:逻辑页面已分配,但尚未分配物理存储页面,即为某些进程保留的一部分虚拟地址。C.空闲页面:可以保留或提交的可用页面,对当前的进程是不可存取的。实验算法Windows系统存储器管理相关知识页面操作A.保留:保留进程的虚拟地址空间,而不分配物理存储空间。B.释放:全部释放物理存储和虚拟地址空间。C.提交:为进程的虚拟地址分配物理存储空间,可以对处于空闲、保留、提交状态的页面进行提交操作。D.回收:释放物理内存空间,保留虚拟地址空间。E.加锁:对已提交的页面进行加锁,使得页面常驻内存而不会产生缺页现象。F.解锁:对已加锁的页面进行

7、解锁操作。实验算法Windows内存管理Windows内存管理程序采用VS编译器编译。程序最初执行时交没有给地址指针BASE_PTR赋初值,所以在前几次随机的虚存模拟活动中可能导致动作失败,但这不影响程序功能的实现。实验算法Windows系统API函数(1)GlobalMemoryStatus:获取存储系统的概况及程序存储空间的使用状况。voidGlobalMemoryStatus(LPMEMORYSTATUSlpBuffer)GlobalMemoryStatus是本实验重要的API函数,该函数无返回值,参数是一个指向名为MEMORYSTA

8、TUS的结构的指针。函数的返回信息会被存储在MEMORYSTATUS结构中。实验算法Windows系统API函数(2)VirtualQuery:查询一个进程的虚拟内存。DWORD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。