《重点课件 (6)》由会员分享,可在线阅读,更多相关《重点课件 (6)(66页珍藏版)》请在金锄头文库上搜索。
1、操作系统Operating System第四章第四章 存 储 管 理存 储 管 理第四章 存储管理第四章 存储管理存储器是计算机系统的重要资源之一。 因为任何程序和数据以及各种控制用的数据结 构都必须占用一定的存储空间,因此,存储管 理直接影响系统性能。存储器是计算机系统的重要资源之一。 因为任何程序和数据以及各种控制用的数据结 构都必须占用一定的存储空间,因此,存储管 理直接影响系统性能。 ?4.1 存储管理的功能4.1 存储管理的功能 ?4.2 分区存储管理4.2 分区存储管理 ?4.3 覆盖与交换技术4.3 覆盖与交换技术 ?4.4 页式管理4.4 页式管理 ?4.5 段式与段页式管理4
2、.5 段式与段页式管理 ?4.6 局部性原理和抖动问题4.6 局部性原理和抖动问题存储器存储器由内存(由内存(primary storage) 和外存() 和外存(secondary storage)组成。)组成。?内存由内存由顺序编址顺序编址的的块块组成,每块包含相应 的物理单元。组成,每块包含相应 的物理单元。 ?CPU 要通过要通过启动启动相应的输入输出设备后才 能使外存与内存相应的输入输出设备后才 能使外存与内存交换交换信息。信息。 ?本章主要讨论本章主要讨论内存管理内存管理问题。问题。4.1 存储管理的功能存储管理的功能存储管理研究的课题存储管理研究的课题?存储分配问题。存储分配问题
3、。 重点是研究存储共享和各 配算法。重点是研究存储共享和各 配算法。 ?地址再定位问题。地址再定位问题。 研究各种地址变换机 构, 以及静态和动态再定位方法。研究各种地址变换机 构, 以及静态和动态再定位方法。 ?存储保护问题。存储保护问题。 研究保护各类程序、 数 据区的方法。研究保护各类程序、 数 据区的方法。 ?存储扩充问题。存储扩充问题。 主要研究虚拟存储器问题 及其各种调度算法。主要研究虚拟存储器问题 及其各种调度算法。4.1 存储管理的功能存储管理的功能1、虚拟存储器1、虚拟存储器 【虚拟存储器的基本思想】:【虚拟存储器的基本思想】: 把作业地址空间和实际主存的存储空间, 视 为两
4、个不同的概念。一个计算机系统为程序员提供 了一个足够大的地址空间,而完全不必考虑实际主 存的大小。 由此,可以引出虚拟存储器更一般的概 念, 即把系统提供的这个地址空间,想象成有一个 存储器把作业地址空间和实际主存的存储空间, 视 为两个不同的概念。一个计算机系统为程序员提供 了一个足够大的地址空间,而完全不必考虑实际主 存的大小。 由此,可以引出虚拟存储器更一般的概 念, 即把系统提供的这个地址空间,想象成有一个 存储器(虚存与之对应虚存与之对应) ,正像存储空间有一个主存 与之对应一样。这就是说,虚拟存储器实际上是一 个地址空间。,正像存储空间有一个主存 与之对应一样。这就是说,虚拟存储器
5、实际上是一 个地址空间。4.1 存储管理的功能存储管理的功能【虚拟存储器定义】:【虚拟存储器定义】: 所谓虚拟存储器, 是指具有所谓虚拟存储器, 是指具有请求调入请求调入 功能和功能和置换功能置换功能, 能从, 能从逻辑逻辑上对内存容量 加以扩充的一种存储器系统。其逻辑上对内存容量 加以扩充的一种存储器系统。其逻辑容量容量 由内存容量和外存容量之和所决定,其由内存容量和外存容量之和所决定,其运 行速度运 行速度接近于内存速度,而接近于内存速度,而每位的成本每位的成本却 又接近于外存。可见,虚拟存储技术是一 种性能非常优越的存储器管理技术,故被 广泛地应用于大、 中、 小型机器和微型机 中。却
6、又接近于外存。可见,虚拟存储技术是一 种性能非常优越的存储器管理技术,故被 广泛地应用于大、 中、 小型机器和微型机 中。4.1 存储管理的功能存储管理的功能4.1 存储管理的功能存储管理的功能【局部性原理】:【局部性原理】: 早在1968年, Denning.P就曾指出:早在1968年, Denning.P就曾指出: ?程序执行时, 除了程序执行时, 除了少部分少部分的转移和过程调用指 令外, 在的转移和过程调用指 令外, 在大多数大多数情况下仍是顺序执行的。情况下仍是顺序执行的。 ?过程调用将会使程序的执行轨迹由一部分区域转 至另一部分区域, 但经研究看出,过程调用的过程调用将会使程序的执
7、行轨迹由一部分区域转 至另一部分区域, 但经研究看出,过程调用的 深度深度在大多数情况下都不超过5。在大多数情况下都不超过5。 ?程序中存在许多程序中存在许多循环循环结构, 这些虽然只由结构, 这些虽然只由少数 指令少数 指令构成, 但是它们将构成, 但是它们将多次多次执行。执行。 ?程序中还包括许多对数据结构的处理, 如对数 组进行操作, 它们往往都程序中还包括许多对数据结构的处理, 如对数 组进行操作, 它们往往都局限于很小局限于很小的范围内。的范围内。4.1 存储管理的功能存储管理的功能【局限性又表现在下述两个方面 】【局限性又表现在下述两个方面 】:?时间局限性。时间局限性。如果程序中
8、的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被 访问过, 则不久以后该数据可能再次被访问。产 生时间局限性的典型原因,是由于在程序中存在 着大量的循环操作。如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被 访问过, 则不久以后该数据可能再次被访问。产 生时间局限性的典型原因,是由于在程序中存在 着大量的循环操作。 ?空间局限性。空间局限性。一旦程序访问了某个存储单元,在 不久之后,其附近的存储单元也将被访问,即程 序在一段时间内所访问的地址,可能集中在一定 的范围之内,其典型情况便是程序的顺序执行。一旦程序访问了某个存储单元,在 不久之后,其附近的存
9、储单元也将被访问,即程 序在一段时间内所访问的地址,可能集中在一定 的范围之内,其典型情况便是程序的顺序执行。【虚拟存储器的实现方法】【虚拟存储器的实现方法】:分页请求系统 1)硬件支持分页请求系统 1)硬件支持 ?请求分页的页表机制,请求分页的页表机制,它是在纯分页的页表机制 上增加若干项而形成的,作为请求分页的数据结 构;它是在纯分页的页表机制 上增加若干项而形成的,作为请求分页的数据结 构; ?缺页中断机构,缺页中断机构,即每当用户程序要访问的页面尚 未调入内存时 便产生一缺页中断,以请求即每当用户程序要访问的页面尚 未调入内存时 便产生一缺页中断,以请求OS将 所缺的页调入内存;将 所
10、缺的页调入内存; ?地址变换机构,地址变换机构, 它同样是在纯分页地址变换机 构的基础上发展形成的。 2)实现请求分页的软件2)实现请求分页的软件4.1 存储管理的功能存储管理的功能2、地址变换2、地址变换 内存地址的集合称为内存地址的集合称为内存空间内存空间或物理地 址空间。内存中,每一个存储单元都与相应 的称为内存地址的编号相对应。显然,内存 空间是或物理地 址空间。内存中,每一个存储单元都与相应 的称为内存地址的编号相对应。显然,内存 空间是一维线性空间一维线性空间。 怎样把几个虚存的一维线性空间或多维 线性空间。 怎样把几个虚存的一维线性空间或多维 线性空间变换变换到内存的唯一的一维物
11、理线性 空间呢? 这涉及到两个问题。到内存的唯一的一维物理线性 空间呢? 这涉及到两个问题。4.1 存储管理的功能存储管理的功能【两个问题】【两个问题】: ?虚拟空间的划分问题。虚拟空间的划分问题。 ?把虚拟空间中已链接和划分好的内容装入 内存,并将虚拟地址把虚拟空间中已链接和划分好的内容装入 内存,并将虚拟地址映射映射为内存地址的问 题。称之为为内存地址的问 题。称之为地址重定位地址重定位或或地址映射地址映射。 地址映射地址映射就是要建立虚拟地址与内 存地址的关系。实现地址重定位或地址 映射的方法有两种:静态地址重定位和 动态地址重定位。就是要建立虚拟地址与内 存地址的关系。实现地址重定位或
12、地址 映射的方法有两种:静态地址重定位和 动态地址重定位。4.1 存储管理的功能存储管理的功能1)静态地址重定位1)静态地址重定位 静态地址重定位(静态地址重定位(static address relocation)是在虚拟空间)是在虚拟空间程序执行之前程序执行之前 由装配程序完成地址映射工作。 它要求所有待执行的程序必须在执行 之前完成它们之间的链接,否则将无法得 到正确的内存地址和内存空间。由装配程序完成地址映射工作。 它要求所有待执行的程序必须在执行 之前完成它们之间的链接,否则将无法得 到正确的内存地址和内存空间。4.1 存储管理的功能存储管理的功能4.1 存储管理的功能存储管理的功能
13、【程序的装入和链接】【程序的装入和链接】库链接 程序装入模块装入 程序编译程序产 生的目标模 块第一步第二步第三步内存【静态重定位的优点】:【静态重定位的优点】: ?不需要硬件支持。不需要硬件支持。 【静态重定位的缺点】:【静态重定位的缺点】: ?无法实现虚拟存储器。静态重定位方法将程序一旦装入 内存之后就不能再移动,并且必须在程序执行之前将有 关部分全部装入。无法实现虚拟存储器。静态重定位方法将程序一旦装入 内存之后就不能再移动,并且必须在程序执行之前将有 关部分全部装入。虚拟存储器虚拟存储器是一个在物理上只受内存 和外存总容量限制的存储系统,这要求存储管理系统只 把进程执行时频繁使用和立即
14、需要的指令与数据等存放 在内存中,而把那些暂时不需要的部分存放在外存中, 待需要时自动调入,以提高内存的利用率和并行执行的 作业道数。显然,这是是一个在物理上只受内存 和外存总容量限制的存储系统,这要求存储管理系统只 把进程执行时频繁使用和立即需要的指令与数据等存放 在内存中,而把那些暂时不需要的部分存放在外存中, 待需要时自动调入,以提高内存的利用率和并行执行的 作业道数。显然,这是与静态重定位方法矛盾的。与静态重定位方法矛盾的。 ?必须占用连续的内存空间,这就难以做到程序和数据的 共享。必须占用连续的内存空间,这就难以做到程序和数据的 共享。4.1 存储管理的功能存储管理的功能2)动态地址
15、重定位2)动态地址重定位 动态地址重定位动态地址重定位(dynamic address relocation)是在程序执行过程中,在)是在程序执行过程中,在CPU访问内 存之前,将要访问的程序或数据地址转换成内存地 址。动态重定位依靠访问内 存之前,将要访问的程序或数据地址转换成内存地 址。动态重定位依靠硬件地址变换机构硬件地址变换机构完成。完成。?一个一个(或多个或多个)基地址寄存器基地址寄存器BR ?一个一个(或多个或多个)程序虚拟地址寄存器程序虚拟地址寄存器VR ?指令或数据的内存地址指令或数据的内存地址MA与虚拟地址的关系为与虚拟地址的关系为: MA=(BR)+ (VR) 这里,这里,
16、(BR)与与(VR)分别表示寄存器分别表示寄存器BR与与VR中的内容。中的内容。4.1 存储管理的功能存储管理的功能4.1 存储管理的功能存储管理的功能4.1 存储管理的功能存储管理的功能其具体过程是其具体过程是: (1) 设置基地址寄存器设置基地址寄存器BR,虚拟地址寄存器,虚拟地址寄存器 VR。 (2) 将程序段装入内存,且将其占用的内存区首 地址送将程序段装入内存,且将其占用的内存区首 地址送BR中。中。 (BR)=1000。 。 (3) 在程序执行过程中,将所要访问的虚拟地 址送入在程序执行过程中,将所要访问的虚拟地 址送入VR中,例如在图中执行中,例如在图中执行LOAD A 500 语句时 ,将所要访问的虚拟地址语句时 ,将所要访问的虚拟地址500放入放入 VR中。中。 (4) 地址变换机构把地址变换机构把VR和和BR的内容相加,得 到实际访问的物理地址。的内容相加,得 到实际访问的物理地址。4.1 存储管理的功能存储管理的功能【动态重定位的优点】:【动态重定位的优点】: ? 可以对内存进行非连续分配。可以对内存进行非连续分配。显然,对于同一进 程