第07讲 内存管理.ppt

  1. 1、本文档共233页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 内存管理 内存管理 内存=OS使用(内核)+用户使用 程序被执行前必须载入内存 细分用户使用部分??满足更多进程要求??CPU更高效使用 7.1 内存管理的需求 重定位 保护 共享 逻辑组织 物理组织 7.1.1 重定位 在多道程序设计系统中,可用的主存空间通常被许多进程共享 程序员不知道程序在执行的时候要被加载到内存的哪个位置 在程序正在执行的时候,程序可能被交换到磁盘,而在换回内存的时候,可能被放在其它的位置(重加载) 内存访问必须映射到新的物理地址 7.1.2 保护 每个进程都应该受到保护,以免被其它进程有意或无意地干涉 在未授权情况下,进程不能访问其它进程的内存区域 不可能在编译时候对地址进行检查 需要在运行时候检查(动态地址) 由处理器(硬件)支持,而非OS 在访问指令执行时评估是否允许这次存储器访问(存取数据或跳转) 7.1.3 共享 允许多个进程访问相同的内存区块 比多个进程多个copy有优势 7.1.4 逻辑组织 主存、辅存是线性组织(物理组织) 程序、数据是按模块组织 采用模块管理的好处: 模块可以单独编写和编译 可以执行模块级别的保护(read-only, execute-only) 可以在进程间共享模块 7.1.5 物理组织 可供程序或数据使用的主存可能不足 覆盖(overlaying)技术允许不同的模块被指派到同一内存区块 程序员在编写程序的时候不知道到底有多少可用的内存 主存、辅存两级信息交流?OS责任,而非程序员 7.2 内存分区 暂不考虑虚拟内存技术 放置算法: 大小相等的分区 任意一块均可 满时,换出(调度问题) 大小不等的分区 最小适合 把进程放在足够容纳它的最小区块中 每个区块维护一个调度队列 所有区块一个调度队列 缺点: 分区数目固定 小作业不能有效利用空间(碎片多) 7.2.2 动态分区 分区长度和数目可变 允许分配给进程和它所需相同的空间 可能会导致内存中出现许多空洞(外部碎片) 压缩技术 OS不时地移动进程,使得进程占用空间连续,并且所有空闲空间连成一片 7.2.2 动态分区 OS必须确定哪个空闲块分配给进程 放置算法 最佳适配(Best Fit) 首次适配(First Fit) 邻近适配(Next Fit) 最佳适配 选择与要求的大小最接近的块 整体性能差(每次需要查找所有空闲块列表) 最接近块给进程,则碎片很小,但无法利用 需要经常做压缩整理 7.2.2 动态分区 首次适配 从开始扫描内存,选择大小足够的第一块可用内存 速度最快 都放在前面,查找时候要经过这些块 7.2.2 动态分区 邻近适配 从上一次放置的位置开始扫描内存,选择下一个大小足够的块 内存经常在最后有一大空闲块 大块被分解成小块 需要压缩整理来获得内存尾部的大空闲空 7.2.3 伙伴系统 分配: 整个空闲区块看成一个大小为2U的块 如果请求块大小s满足: 2U-1 s = 2U,则分配整块空闲块,结束 否则分成两个大小相等的伙伴块 2U ?? 2U-1 + 2U-1 转b)继续比较 释放: 释放空间 有无空闲伙伴快 有,合并,转b);无,结束 7.2.4 重定位 程序被加载进入内存时,实际的地址(绝对地址)就被确定 一个进程可能占用不同的内存区域(交换)?不同的绝对地址(物理地址) 压缩整理也可能造成一个程序占用不同的内存区域?不同的绝对地址 7.2.4 重定位 地址类别: 逻辑地址 指与当前数据在内存中的物理分配地址无关的访问地址 在访问时需要转换成物理地址 相对地址 逻辑地址的一个特例 相对与某些已知的点 物理地址 也称绝对地址,内存中的实际位置 7.3 分页 将内存分成大小相等的小区块(帧frames) 将进程也分解成大小相等的小区块(页pages) 内存小区块大小(帧)=进程小区块大小(页) OS为每一个进程维护一个页表 页??帧 (页在内存中的位置) 内存地址=页号+偏移量 7.3 分页 7.3 分页 7.3 分页 7.4 分段 程序的每个段无需等长,长度任意 有一个最大段长度 地址=段号+偏移量 段表 与动态分区相似 段不等长 7.5逻辑地址 分区 分页 分段 练习 在可变式分区存储管理中的拼接技术(压缩技术)可以 。 集中空闲区 增加主存容量 缩短访问周期 加速地址转换 练习 分区管理中采用“最佳适应”分配算法时,宜把空闲区按照 次序登记在空闲区表中。 长度递增 长度递减 地址递增 地址递减 练习 把程序地址空间中使用的逻辑地址变成内存中物理地址的过程称为 。 重定位 物理化 逻辑化 加载 练习

文档评论(0)

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

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

1亿VIP精品文档

相关文档