- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 存储管理 存储系统包括计算机中所有用来存储信息的部分。它分为主存和辅存:主存保存着正在被CPU访问的信息。辅存是一组外部存储设备。在CPU执行要使用的程序和信息时,将这些程序和数据保持在主存中,而在它们被使用或更新后,就马上将信息写回到辅存。 存储管理器的功能 存储管理器就是用来对主存进行空分复用的资源管理器。 存储层次 抽象:主存被抽象为使得应用程序员认为,分配给他们的存储器是一个大的连续地址空间的数组。 隔离:当连续地址字节块被分配给进程时,进程要确保对这些存储单元的独占性使用。 共享:存储管理器可允许两个或更多的进程共享存储块。 地址空间抽象 逻辑地址:指令中的地址 物理地址:物理内存地址 进程地址空间:多道程序设计操作系统引进了主存的抽象:即每个进程被提供了一组逻辑主存地址,可以使用它来读写物理主存中的地址内容。可访问的地址由存储管理器来分配给进程。 地址绑定 将程序使用的地址[指令和数据的地址]与主存中的物理存储位置相关联的过程称为地址绑定。 建立地址空间并绑定到主存位置可以在以下三个阶段完成: 编译时; 加载时; 执行时。 存储管理单元MMU 管理地址空间 源程序在编译时进行编译并产生目标代码模块。 一组目标代码模块在链接时使用链接器来产生一个绝对(或加载)模块。绝对模块的组织结构定义了进程地址空间,进程可以使用逻辑地址来引用程序的指令、数据和栈。绝对程序存储在文件(或辅存中),直到进程准备使用它。 管理地址空间 在进程从存储管理器获得一块内存之后,它调用系统加载器来将绝对程序载入主存块。完成进程的创建。 绝对程序使用逻辑地址,所以它被构建成好像是在存储位置0处加载和执行的。 加载器通过修改被加载模块中的每个逻辑地址来将逻辑地址绑定到物理地址,这样,就可以使用逻辑地址来引用分配主存块内相应的物理地址。 用户程序的处理过程 编译时间 链接时间 加载时间 动态加载 v.s 静态加载 需要把进程中的所有程序和数据都放入内存吗? 讨论: 使存储空间更好地得到利用;即只将那些需要执行的指令装入内存。 当出现个别“巨大”的进程时 不需要操作系统提供支持(动态加载由运行时系统完成) 动态链接 V.S 静态链接 动态链接将链接时间延缓到程序执行时间 编译时,使用一小段代码(stub)取代需要链接的模块(函数名?),在模块加载时用指令的地址覆盖Stub。 需要操作系统提供必要的支持,以检测指令是否在内存中(例如:缺页中断) DLL动态链接库技术 主存的连续空间分配策略 主存必须同时向操作系统和多个用户进程提供空间,所以主存一般被分为两个部分:一部分常驻操作系统,另一部分分配给用户进程。 对于连续的主存分配,我们规定,每一个用户进程只需要一个连续的主存空间以便运行。 连续空间分配策略-内存保护 保护内存的目标 保护独立的操作系统空间和用户空间的独立性 保护用户进程与其他用户进程空间的独立性 如何保护? 使用MMU的重定位寄存器和界限寄存器 不同的分配策略 有很多不同的策略可用于分配连续的主存空间。这些策略通常可划分成: 固定分区存储分配策略:在操作系统配置时,将主存分割成固定数目、固定大小的主存块; 可变分区存储分配策略:使用动态确定的、大小可变的主存块。 伙伴系统 固定分区存储分配策略 等分分配:不适用于大的进程和存储空间浪费 不等分分配: 首次适配 最佳适配 临近适配。 主要缺陷: 内部碎片 固定的并发进程数量 可变分区存储分配策略 管理用数据结构-对可变尺寸块存储管理器来说,如何记录可变大小主存块的踪迹,并有效的分配它们。 动态分配策略 操作系统维护两个表:分配表和空闲表 空闲表的合并 首次适配/最佳适配/邻近适配/最坏适配 外部碎片整理:内存压缩 动态地址空间绑定 伙伴系统 请求100K 请求240K 请求64K 请求256K 释放B 释放A 请求75K 释放C 释放E 释放D 分页管理 将进程空间分为大小完全相等的“页”。 把物理空间分为大小完全相等的“页帧” “页”的大小与“页帧”的大小相等。 将后备存储器划分为空间大小相等的“块” 运行一个n页的程序的过程,就是寻找n个“页帧”并加载的过程 地址映射-逻辑地址与物理地址的转换 页表:系统在创建进程时,为每个进程分配一个页表。 逻辑地址结构 页码 页内偏移 物理地址结构 帧码 页内偏移 页 表 Bt(i) 页表结构 页表的大小:对于一个32位的CPU,页表的大小可以是:4k page= 232/212=1M Words = 4M B 页表结构 二维表 哈希表 反向表 页表的实现 空间小且访问速度快的随机访问存储器 主存储器 主存储器+联想存储器Translation look-aside buffer 页表常驻内存 table base
文档评论(0)