实习4 内存管理 操作系统高级 教学课件.ppt

实习4 内存管理 操作系统高级 教学课件.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习4 内存管理 操作系统高级 教学课件

实习四:内存管理 题目说明(1) 实习要求 在Windows 环境下,编写一个程序,包括两个线程,线程作用如教材中内存管理示例。将VirtualAlloc函数的参数flAllocationType分别改为MEM_RESET,MEM_TOP_DOWN,将flProtect参数分别改为PAGE_GUARD,PAGE_NOACCESS,PAGE_NOCACHE,再执行,查看内存分配的结果 查阅MSDN,找到MEM_RESET,MEM_TOP_DOWN,PAGE_GUARD,PAGE_NOACCESS,PAGE_NOCACHE的属性含义 题目说明(2) 实现提示 参考《Windows内核实验教程》中内存管理实习(P91) 相应的API函数参考《Windows内核实验》中的内存管理实习和MSDN 题目说明(3) 回答问题 1.分析不同参数的设置对内存分配的结果影响 2.如果调换分配、回收、内存复位、加锁、解锁、提交、回收的次序,会有什么变化,并分析原因 题目说明(4) 思考题 若要实现一个支持200行乘256列的电子表格应用程序,可以采用二维矩阵或者链表来控制这些表元。前者访问快速,但存储开销很大;后者存储节约,但是查找速度很慢 请给出一种方法,使得它可以得到定义矩阵技术提供的快速简便访问和链表技术提供的优良存储节约 不需要写出具体程序,但要明确程序要做哪些工作,在分析报告中详细写出。 查找有关资料,总结物理存储提交的不同方法,并比较各自的优缺点 思考题 物理页面的三种状态free , reserved, commit的含义 VirtualAlloc存在哪两种主要的调用方式,各实现什么功能? VirtualFree存在几种主要的调用方式,各实现什么功能? 内存映射文件可以用来解决哪些问题,如何使用? 分析不同参数的设置对内存分配的结果影响 什么是互斥,什么是同步,互斥和同步的区别是什么?本实验中用到的是什么? 提交对页面可用字节数和物理可用空间有什么影响? 思考题(续) 在多数通用操作系统中,内存管理分为哪三个层次,分别实现什么功能? 引入线性地址在操作,管理,划分,保护等方面带来了什么好处与开销? 为什么需要引入多级页表,引入多级页表有什么好处,带了了什么开销? 多数操作系统中,把内存划分为系统区和用户区,为什么要进行这种划分,需要什么硬件支持? 物理存储提交的不同方法,比较各自的优缺点 本实验中用到的主要函数及其参数,名称及含义 背景知识 Windows 的用户进程的虚拟内存空间管理和分配方法 作为32位操作系统,提供32位虚地址,每个进程虚地址空间最多4GB,其中2GB为进程的私有空间,操作系统占用剩下的2GB Windows以页为单位进行虚拟内存分配,利用二级页表结构来实现虚拟地址向物理地址的变换 虚拟地址页目录索引,页表索引和字节索引 页面状态空闲页面,保留页面,提交页面 API GetSystemInfo 说明:在一个SYSTEM_INFO结构中载入与底层硬件平台有关的信息 参数 lpSystemInfo :指向一个SYSTEM_INFO结构,用于装载适当的系统信息 API(续) GlobalMemoryStatus 说明:获得计算机系统中当前使用的物理内存和虚拟内存的信息 参数 lpBuffer:指向MEMORYSTATUS数据结构,将当前内存可用性的信息存储在该结构中 API(续) VirtualAlloc 说明:该函数可以在调用进程的虚拟地址中保留或提交页面。除非设置了MEM_RESET标志,否则被这个函数分配的内存单元自动初始化为0 返回值:若成功,则返回所分配页面的基址;否则,返回NULL 参数 lpAddress:待分配空间的起始地址 dwSize:定义分配空间的大小。若lpAddress为NULL,该参数值将四舍五入到下一个页面边界 ftAllocationType:定义分配类型,可以为MEM_COMMIT(分配物理内存)或者MEM_RESERVED(保留进程虚拟地址空间) flProtect:访问保护的类型 API(续) VirtualFree 说明:该函数用于释放,回收或者释放并回收进程虚拟地址空间中的页面 返回值:若成功,则返回一个非零值;否则返回0 参数 lpAddress:释放页面的基址 dwsize:定义释放区域的大小 dwFreeType:定义释放操作的类型,可以是MEM_DECOMMIT(回收指定的提交页面)和MEM_RELEASE(释放指定的保留页面)中的一个或者

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档