当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

清华大学计算机系列教材:《计算机操作系统教程》(第2版)第5章 存储管理

资源类别:文库,文档格式:PPT,文档页数:147,文件大小:533KB,团购合买
5.1 存储管理的功能 5.2 分区存储管理 5.3 覆盖与交换技术 5.4 页式管理 5.5 段式与段页式管理 5.6 局部性原理和抖动问题
点击下载完整版文档(PPT)

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 第5章存储管理 51存储管理的功能 52分区存储管理 53覆盖与交换技术 54页式管理 55段式与段页式管理 56局部性原理和抖动问题 本章小结 习题

第5章 存储管理 5.1 存储管理的功能 5.2 分区存储管理 5.3 覆盖与交换技术 5.4 页式管理 5.5 段式与段页式管理 5.6 局部性原理和抖动问题 本章小结 习题

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 5.1存储管理的功能 存储器是计算机系统的重要资源之一。因为任何程 序和数据以及各种控制用的数据结构都必须占用 定的存储空间,因此,存储管理直接影响系统性能。 存储器由内存( primary srotage)和外存 ( secondary storage)组成。内存由顺序编址的块 组成,每块包含相应的物理单元。CPU要通过启 动相应的输入输出设备后才能使外存与内存交换信 息。本章主要讨论内存管理问题。主要包括:几种 常用的内存管理方法、内存的分配和释放算法、虚 拟存储器的概念、控制主存和外存之间的数据流动 方法、地址变换技术和内存数据保护与共享技术等。 下面先介绍存储管理的功能

5.1 存储管理的功能 存储器是计算机系统的重要资源之一。因为任何程 序和数据以及各种控制用的数据结构都必须占用一 定的存储空间,因此,存储管理直接影响系统性能。 存储器由内存(primary srotage)和外存 (secondary storage)组成。内存由顺序编址的块 组成,每块包含相应的物理单元。CPU 要通过启 动相应的输入输出设备后才能使外存与内存交换信 息。本章主要讨论内存管理问题。主要包括:几种 常用的内存管理方法、内存的分配和释放算法、虚 拟存储器的概念、控制主存和外存之间的数据流动 方法、地址变换技术和内存数据保护与共享技术等。 下面先介绍存储管理的功能

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 511虚拟存储器 虚拟存储器是存储管理的核心概念。现代计算机系 统的物理存储器都分为内存和外存,内存价格昂贵, 不可能用大容量的内存存储所有被访问的或不被访 问的程序与数据段。而外存尽管访问速度较慢,但 价格便宜,适合于存放大量信息。这样,存储管理 系统把进程中那些不经常被访问的程序段和数据放 入外存中,待需要访问它们时再将它们调入内存 那么,对于那些一部分数据和程序段在内存而另 部分则在外存的进程,怎样安排它们的地址呢?通 常由用户编写的源程序,首先要由编译程序编译成 CPU可执行的目标代码。然后,链接程序把一个 进程的不同程序段链接起来以完成所要求的功能

5.1.1 虚拟存储器 虚拟存储器是存储管理的核心概念。现代计算机系 统的物理存储器都分为内存和外存,内存价格昂贵, 不可能用大容量的内存存储所有被访问的或不被访 问的程序与数据段。而外存尽管访问速度较慢,但 价格便宜,适合于存放大量信息。这样,存储管理 系统把进程中那些不经常被访问的程序段和数据放 入外存中,待需要访问它们时再将它们调入内存。 那么,对于那些一部分数据和程序段在内存而另一 部分则在外存的进程,怎样安排它们的地址呢?通 常由用户编写的源程序,首先要由编译程序编译成 CPU 可执行的目标代码。然后,链接程序把一个 进程的不同程序段链接起来以完成所要求的功能

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 显然,对于不同的程序段,应具有不同的地址。有 两种方法安排这些编译后的目标代码的地址。一种 方法是按照物理存储器中的位置赋予实际物理地址。 这种方法的好处是CPU执行目标代码时的执行速 度高。但是,由于物理存储器的容量限制,能装入 内存并发执行的进程数将会大大减少,对于某些较 大的进程来说,当其所要求的总内存容量超过内存 容量时将会无法执行。另外,由于编译程序必须知 道内存的当前空闲部分及其地址,并且把一个进程 的不同程序段连续地存放起来,因此编译程序将非 常复杂

显然,对于不同的程序段,应具有不同的地址。有 两种方法安排这些编译后的目标代码的地址。一种 方法是按照物理存储器中的位置赋予实际物理地址。 这种方法的好处是CPU 执行目标代码时的执行速 度高。但是,由于物理存储器的容量限制,能装入 内存并发执行的进程数将会大大减少,对于某些较 大的进程来说,当其所要求的总内存容量超过内存 容量时将会无法执行。另外,由于编译程序必须知 道内存的当前空闲部分及其地址,并且把一个进程 的不同程序段连续地存放起来,因此编译程序将非 常复杂

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 另一种方法是编译链接程序把用户源程序编译后链 接到一个以0地址为始地址的线性或多维虚拟地址 空间。这里,链接既可以是在程序执行以前由链接 程序完成的静态链接,也可以是在程序执行过程中 由于需要而进行的动态链接。而且,每一个进程都 拥有这样一个空间(这个空间是一维的还是多维的 由存储管理方式决定)。每个指令或数据单元都在 这个虚拟空间中拥有确定的地址,把这个地址称为 虚拟地址( virtual address)。显然,进程在该空 间的地址排列可以是非连续的,其实际物理地址由 虚拟地址到实际物理地址的地址变换机构变换得到。 由源程序到实际存放该程序指令或数据的内存物理 位置的变换如图51所示

另一种方法是编译链接程序把用户源程序编译后链 接到一个以0地址为始地址的线性或多维虚拟地址 空间。这里,链接既可以是在程序执行以前由链接 程序完成的静态链接,也可以是在程序执行过程中 由于需要而进行的动态链接。而且,每一个进程都 拥有这样一个空间(这个空间是一维的还是多维的 由存储管理方式决定)。每个指令或数据单元都在 这个虚拟空间中拥有确定的地址,把这个地址称为 虚拟地址(virtual address)。显然,进程在该空 间的地址排列可以是非连续的,其实际物理地址由 虚拟地址到实际物理地址的地址变换机构变换得到。 由源程序到实际存放该程序指令或数据的内存物理 位置的变换如图5.1所示

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 编译链接 源程序 虚拟空间地址转换 物理存储器 图51地址变换与物理存储器 将进程中的目标代码。数据等的虚拟地址组成的虚 拟空间称为虚拟存储器。虚拟存储器不考虑物理存 储器的大小和信息存放的实际位置,只规定每个进 程中互相关连的信息的相对位置。与实际物理存储 器只有一个(单机系统中),且被所有进程共享不 样,每个进程都拥有自己的虚拟存储器,且虚拟 存储器的容量是由计算机的地址结构和寻址方式确 定的。例如,直接寻址时,如果CPU的有效地址 长度为16位,则其寻址范围为0到64K

图5.1 地址变换与物理存储器 将进程中的目标代码。数据等的虚拟地址组成的虚 拟空间称为虚拟存储器。虚拟存储器不考虑物理存 储器的大小和信息存放的实际位置,只规定每个进 程中互相关连的信息的相对位置。与实际物理存储 器只有一个(单机系统中),且被所有进程共享不 一样,每个进程都拥有自己的虚拟存储器,且虚拟 存储器的容量是由计算机的地址结构和寻址方式确 定的。例如,直接寻址时,如果CPU 的有效地址 长度为16位,则其寻址范围为 0到64K

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 图51中的编译和链接主要是语言系统的设计问题。 不过,由虚拟存储器到物理存储器的变换是操作系 统所必须解决的问题。要实现这个变换,必须要有 相应的硬件支持,并使这些硬件能够完成统一管理 内存和外存之间数据和程序段自动交换的虚拟存储 器功能。即,由于每个进程都拥有自己的虚存,且 每个虚存的大小不受实际物理存储器的限制,因此, 系统不可能提供足够大的内存来存放所有进程的内 容。内存中只能存放那些经常被访问的程序和数据 段等。这就需要有相当大的外部存储器,以存储那 些不经常被访问或在某一段时间内不会被访问的信 息。待到进程执行过程中需要这些信息时,再从外 存中自动调入主存

图5.1中的编译和链接主要是语言系统的设计问题。 不过,由虚拟存储器到物理存储器的变换是操作系 统所必须解决的问题。要实现这个变换,必须要有 相应的硬件支持,并使这些硬件能够完成统一管理 内存和外存之间数据和程序段自动交换的虚拟存储 器功能。即,由于每个进程都拥有自己的虚存,且 每个虚存的大小不受实际物理存储器的限制,因此, 系统不可能提供足够大的内存来存放所有进程的内 容。内存中只能存放那些经常被访问的程序和数据 段等。这就需要有相当大的外部存储器,以存储那 些不经常被访问或在某一段时间内不会被访问的信 息。待到进程执行过程中需要这些信息时,再从外 存中自动调入主存

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 5.12地址变换 内存地址的集合称为内存空间或物理地址空间。内 存中,每一个存储单元都与相应的称为内存地址的 编号相对应。显然,内存空间是一维线性空间。 怎样把几个虚存的一维线性空间或多维线性空间变 换到内存的唯一的一维物理线性空间呢?这涉及到 两个问题。一个是虚拟空间的划分问题。例如进程 的正文段和数据段应该放置在虚拟空间的什么地方。 虚拟空间的划分使得编译链接程序可以把不同的程 序模块(它们可能是用不同的高级语言编写的), 链接到一个统一的虚拟空间中去。虚拟空间的划分 与计算机系统结构有关。VAX-11机的虚拟空间结 构如图52

5.1.2 地址变换 内存地址的集合称为内存空间或物理地址空间。内 存中,每一个存储单元都与相应的称为内存地址的 编号相对应。显然,内存空间是一维线性空间。 怎样把几个虚存的一维线性空间或多维线性空间变 换到内存的唯一的一维物理线性空间呢?这涉及到 两个问题。一个是虚拟空间的划分问题。例如进程 的正文段和数据段应该放置在虚拟空间的什么地方。 虚拟空间的划分使得编译链接程序可以把不同的程 序模块(它们可能是用不同的高级语言编写的), 链接到一个统一的虚拟空间中去。虚拟空间的划分 与计算机系统结构有关。VAX-11机的虚拟空间结 构如图5.2

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 0|程序区 30 进程空间 控制区 31 系统区 系统空间 232|保留区 图52虚拟空间的划分 第二个问题是把虚拟空间中已链接和划分好的内容 装入内存,并将虚拟地址映射为内存地址的问题。 称之为地址重定位或地址映射。地址映射就是要建 立虚拟地址与内存地址的关系。实现地址重定位或 地址映射的方法有两种:静态地址重定位和动态地 址重定位

图5.2 虚拟空间的划分 第二个问题是把虚拟空间中已链接和划分好的内容 装入内存,并将虚拟地址映射为内存地址的问题。 称之为地址重定位或地址映射。地址映射就是要建 立虚拟地址与内存地址的关系。实现地址重定位或 地址映射的方法有两种:静态地址重定位和动态地 址重定位

清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 1.静态地址重定位 静态地址重定位( static address relocation)是在虚 拟空间程序执行之前由装配程序完成地址映射工作。 假定分配程序已分配了一块首地址为BA的内存区 给虚拟空间内的程序段,且每条指令或数据的虚拟 地址为ⅤA,那么,该指令或数据对应的内存地址 为MA,从而完成程序中所有地址部分的修改,以 保证CPU的正确执行。显然,对于虚拟空间内的指 令或数据来说,静态地址重定位只完成一个首地址 不同的连续地址变换。它要求所有待执行的程序必 须在执行之前完成它们之间的链接,否则将无法得 到正确的内存地址和内存空间

1. 静态地址重定位 静态地址重定位(static address relocation)是在虚 拟空间程序执行之前由装配程序完成地址映射工作。 假定分配程序已分配了一块首地址为BA的内存区 给虚拟空间内的程序段,且每条指令或数据的虚拟 地址为VA,那么,该指令或数据对应的内存地址 为MA,从而完成程序中所有地址部分的修改,以 保证CPU的正确执行。显然,对于虚拟空间内的指 令或数据来说,静态地址重定位只完成一个首地址 不同的连续地址变换。它要求所有待执行的程序必 须在执行之前完成它们之间的链接,否则将无法得 到正确的内存地址和内存空间

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共147页,可试读30页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有