- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 存储管理 存储管理功能 内存资源管理 存储管理方式 外存空间管理 虚拟存储系统 6.1 存储管理功能 存储分配和去配 分配去配对象 内存、外存(相同方法) 分配去配时刻 进程创建、撤销、交换、长度变化 存储共享 目的:节省内存、相互通讯 内容:代码、数据 存储保护 防止地址越界 防止操作越权 6.1 存储管理功能(Cont.) 存储扩充 内存、外存结合,虚拟存储体系 速度接近内存,容量相当外存 地址映射 逻辑地址=物理地址 硬件支持 基址寄存器(base)、限长寄存器(limit)、快表; 使用上述寄存器完成地址映射过程; 不能正常完成地址映射时产生中断。 6.2 内存资源管理 6.2.1 内存分区 分区时刻 静态分区:系统初始化时分; 动态分区:申请时分。 分区大小 等长分区:2i 异长分区:依程序、程序单位、对象大小。 通常作法 静态+等长(页式、段页式) 动态+异长(段式、界地址) 6.2.2 内存分配 静态等长分区的分配 字位映象图 空闲页面表 空闲页面链 动态异长分区的分配 最先适应 (First Fit) 最佳适应 (Best Fit) 最坏适应 (Worst Fit) 字位映象图(bit map) 空闲页面表 空闲页面链 动态异长分区的分配 最先适应算法(First Fit) 最佳适应算法(Best Fit) 最坏适应算法(Worst Fit) 6.2.3 碎片处理 6.3 存储管理方式 界地址管理方式(一维地址) 页式管理方式(一维地址) 段式管理方式(二维地址) 段页式管理方式(二维地址) 6.3.1 界地址管理方式 6.3.1 界地址管理方式 6.3.1 界地址管理方式 6.3.2 分页式存储管理(paging) 6.3.2 分页式存储管理 6.3.2.2 多级页表 提出背景 进程虚拟空间大幅度增加 单级页表需要很大连续内存空间 例如 32位进程地址空间,页长4k(占12位),页号20位,页表需要220个入口! 解决策略 二级或多级页表 Address-Translation Scheme 6.3.2.3 反置页表(inverted page table) 传统页表面向进程空间 每个进程逻辑页面有一表项 当进程空间很大时,页表很大 反置页表面向内存空间 每个内存页架一个表项 大小固定 反置页表--工作原理 6.3.3 分段式存储管理(segmentation) 6.3.4 段页式存储管理(segmentation with paging) 段式优于页式 便于共享和保护 页式优于段式 消除“碎片”问题 段页式:结合二者优点 每个进程包含若干段 每个段包含若干页 6.4 外存资源管理 外存空间划分 静态等长,2i, 称为一块(block),块是外存分配的基本单位,也是IO传输的基本单位。 外存空间分配 空闲块链(慢) 空闲块表(UNIX) 字位映像图 进程与外存对应关系 界地址 每进程占一组外存连续块; 每进程占二组外存连续块(双对界)。 页式 内存一页,外存一块。 段式 每段占外存若干连续块。 段页式 内存一页,外存一块。 6.5 虚拟存储系统 无虚拟问题 不能运行比内存大的程序; 进程全部装入内存,浪费空间(进程活动具有局部性)。 单控制流的进程需要较少部分在内存; 多控制流的进程需要较多部分在内存。 虚拟存储 进程部分装入内存,部分(或全部)装入外存,运行时访问在外存部分动态调入,内存不够淘汰。 6.5.1 虚拟页式存储系统 基本原理 进程运行前: 全部装入外存,部分装入内存。 进程运行时: 访问页不在内存,发生缺页中断,中断处理程序: 找到访问页在外存的地址; 在内存找一空闲页面; 如没有,按淘汰算法淘汰一个; 如需要,将淘汰页面写回外存,修改页表和总页表; 读入所需页面(切换进程); 重新启动中断指令。 6.5.1.7 工作集模型(working set model) 6.5.1.8 页故障率反馈模型 6.5.2 虚拟段式存储系统 6.5.2.2 段的动态连接(dynamic linking) 动态连接 vs. 静态连接 静态连接:运行前连接,由link完成; 动态连接:运行时连接,由OS完成. 静态连接的缺点 连接时间长; 目标代码长; 连接段可能并不执行(未用到)。 动态连接问题 动态连接与共享的矛盾 动态连接:修改连接字(代码) 段的共享:要求纯代码(pure code) 解决方法 共享代码分为“纯段”和“杂段” 纯段共享, 杂段私用。 6.5.3 虚拟段页式存储系统 考虑 段的动态连接 段的共享 段长度的动态变化 PFFB(Page Fault Feed Back) 页故障率高(达到某上界阈值):内存页面少,增加。 页故障率低(达到某下界阈值):内存页面多,减少
文档评论(0)