吉林大学操作系统课件 第六章 存储管理1.ppt

吉林大学操作系统课件 第六章 存储管理1.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 存储管理 存储管理功能 内存资源管理 存储管理方式 外存空间管理 虚拟存储系统 6.1 存储管理功能 存储分配和去配 分配去配对象 内存、外存(相同方法) 分配去配时刻 进程创建、撤销、交换、长度变化(栈溢出, execl) 存储共享 目的:节省内存、相互通讯 内容:代码、数据 存储保护 防止地址越界 防止操作越权 6.1 存储管理功能(Cont.) 存储扩充 内存、外存结合,虚拟存储体系 速度接近内存,容量相当外存 地址映射 逻辑地址=物理地址 硬件支持 基址寄存器(base)、限长寄存器(limit)、快表; 使用上述寄存器完成地址映射过程; 不能正常完成地址映射时产生中断。 6.2 内存资源管理 6.2.1 内存分区 分区时刻 静态分区:系统初始化时分; 动态分区:申请时分。 分区大小 等长分区:2i 异长分区:依程序、程序单位、对象大小。 通常作法 静态+等长(页式、段页式) 动态+异长(段式、界地址) 6.2.2 内存分配 静态等长分区的分配 字位映象图 空闲页面表 空闲页面链 动态异长分区的分配 最先适应 (First Fit) 最佳适应 (Best Fit) 最坏适应 (Worst Fit) 位示图(bit map) 空闲页面表 空闲页面链 动态异长分区的分配 最先适应算法(First Fit) 下次适应算法(Next Fit, NF) 思想:自上次分配空闲区域的下一个位置开始选取第一个可满足的空闲区域 实现:设置一个循环查找指针,开始时指向表头,每次分配从该指针处开始查找(若查到表尾则将指针置到表头)第一个遇到的可满足的区域,分配后将指针调整为所分配区域的下一个区域处。 优点:可以减少查找空闲区域所花费的时间开销,并使空闲区域分布更均匀。 缺点:可能分割大空闲区 最佳适应算法(Best Fit) 最坏适应算法(Worst Fit) UNIX存储分配--FF 6.2.3 碎片处理 6.3 存储管理方式 界地址管理方式(一维地址) 页式管理方式(一维地址) 段式管理方式(二维地址) 段页式管理方式(二维地址) 6.3.1 界地址管理方式 6.3.1 界地址管理方式 6.3.1 界地址管理方式 6.3.1 界地址管理方式 6.3.1 界地址管理方式 6.3.1.3 交换技术(swapping) 交换又称换进换出,是指进程在内外存之间的动态调度,主要为了缓解内存空间不足的有效方法。 当外存储器中有可运行进程时,系统试图将其调入内存; 当内存空间紧张时,系统将内存中的某些进程,尤其是暂时不可运行的进程移出到外存; 例:UNIX 交换进程sched (#0) 交换原则:外存 SRUN 状态进程?内存 (1)内存有空间,直接移入; (2)内存空间不够,移出SWAIT, SSTOP状态进程; (3)如果还不够,移出SSLEEP, SRUN状态进程, 条件:在外时间?3秒;在内时间?2秒 6.3.1 界地址管理方式 重定位:被换出进程再次运行之前必须重新装入内存,而再次进入内存的位置与换出前的位置一般不同,这就要求程序编址与内存存放位置无关,这种程序称为可重定位程序。 由0起始编址的程序都满足重定位要求,这样的程序也称为浮动程序。 6.1.3.4覆盖技术: 将较大程序装入较小进程空间的技术. 只将全局代码和数据静态装入内存, 其它部分动态装入. 后装入的成分重复使用先装入成分所使用的存储区, 即覆盖先装入的成分. 覆盖技术 6.3.2 分页式存储管理(paging) 6.3.2 分页式存储管理 有效访问时间 (Effective Access Time) EAT=快表命中率?(快表访问时间+内存访问时间)+快表不中率?(快表访问时间+2 ?内存访问时间) ns 98%?(20+100)+2% ?(20+200)ns =122ns 6.3.2.2 多级页表 提出背景 内存空间成倍增长, 进程虚拟空间成倍增加 单级页表需要很大连续内存空间 例如 32位进程地址空间,页长占12位(4k),页号20位,页表最多可达220个入口! 多线程设计导致进程虚拟空间不连续(空洞hole) 栈的预留空间(没有页架相对应) 页表所占内存空间浪费 解决策略 二级或多级页表 Two-Level Paging Example Address-Translation Scheme 4级页表有效访问时间 EAT=快表命中率?(快表访问时间+内存访问时间)+快表不中率?(快表访问时间+5 ?内存访问时间) ns 98%?(20+100)+2% ?(20+500)ns =128ns 6.3.2.3 反置页表(inverted page table) 传统页表面向进程空间

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档