计算机操作系统第5章

上传人:n**** 文档编号:50771862 上传时间:2018-08-10 格式:PPT 页数:110 大小:1.26MB
返回 下载 相关 举报
计算机操作系统第5章_第1页
第1页 / 共110页
计算机操作系统第5章_第2页
第2页 / 共110页
计算机操作系统第5章_第3页
第3页 / 共110页
计算机操作系统第5章_第4页
第4页 / 共110页
计算机操作系统第5章_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《计算机操作系统第5章》由会员分享,可在线阅读,更多相关《计算机操作系统第5章(110页珍藏版)》请在金锄头文库上搜索。

1、第5章 存储管理5.1 存储管理的功能 5.2 分区存储管理 5.3 覆盖与交换技术 5.4 页 式 管 理 5.5 段式与段页式管理 5.6 局部性原理和抖动问题本章小结 习题5.1.1 多级存储器结构对于通用计算机系统而言,存储层次至少应具有三 级:最高层为CPU寄存器,中间层为主存,最底层 为辅存。在较高档的计算机中,可以根据具体功能分工细分 为:寄存器、高速缓存、主存、磁盘缓存、固定磁 盘、可移动存储介质等6层。如图5-1所示。寄存器 高速缓存 主存 磁盘缓存 磁盘 可移动存储介质CPU寄存器主存辅存图5-1 计算机系统存储层次示意图存储层次中,越往上,访问速度越快,价格也越高,相 对

2、存储容量也越小。其中寄存器、高速缓存、主存、磁 盘缓存均属于操作系统存储管理的管辖范畴,掉电后它 们存储的信息不再存在。固定磁盘、可移动存储介质属 于操作系统设备管理的管辖范畴,它们存储的信息被长 期保存。5.1.2 主存储器与寄存器1. 主存储器主存储器(简称内存或主存)用于保存进程的程序和数据,也 称为可执行存储器,在微机系统和大中型机中,其容量可 能为几十MB到数GB,而且容量还在不断增加,在嵌入式 计算机系统中,其容量一般为几十KB到几MB。CPU的控制部件只能从主存中取得指令和数据。CPU与外 围设备交换的信息一般也依托于主存地址空间。由于主存的访问速度远低于CPU执行指令的速度,为

3、缓解 这一矛盾,在计算机系统中引入了寄存器和高速缓存。2. 寄存器寄存器访问速度最快,完全能与CPU协调工作, 但价格却十分昂贵,因此容量不可能做得很大。寄存器的长度一般以字为单位。寄存器的数目,对于微型计算机和大中型机,可 能有几十个甚至上百个;而嵌入式计算机系统一 般仅有几个到几十个。寄存器用于加速存储器的访问速度,如用寄存器 存放操作数,或用作地址寄存器加快地址转换速 度等。5.1.3 高速缓存和磁盘缓存1. 高速缓存高速缓存(Cache)是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存 高得多, 接近于CPU的速度。其容量大于或远大于寄存器

4、,而比主存约小2到3个数量级 ,从几十KB到几MB。根据程序执行的局部性原理,将主存中一些经常访问的信 息存放在高速缓存中,减少访问主存的次数,可以大幅度 提高程序执行的速度。 由于高速缓存的速度越快价格也越高,故有的计算机系统 中设置了两级或多级高速缓存。一级高速缓存速度最高而 容量最小,二级高速缓存容量稍大,速度也稍低。2. 磁盘缓存磁盘缓存是操作系统为磁盘输入输出而在普通物理内存中分 配的一块内存区域。由于磁盘的I/O速度远低于主存的访问速度,因此将频繁使 用的一部分磁盘数据和信息,暂时存放在磁盘缓存中(即利 用主存中的存储空间,来暂存从磁盘中读出或写入的数据和 信息),可减少访问磁盘的

5、次数。在读硬盘数据时,系统先检查请求指令,看看所要的数据是 否在缓存中,如果在的话就由缓存送出相应的数据,这个过 程称为命中。这样系统就不必访问硬盘中的数据,由于主存 的速度比磁介质快很多,因此也就加快了数据传输的速度。在写入硬盘数据时也在缓存中找,如果找到就由缓存将数据 写入磁盘中。虚拟存储器 虚拟存储器是存储管理的核心概念。 实验证明,在一个进程的执行过程中,其大部分程 序和数据并不经常被访问。这样,存储管理系统把 进程中那些不经常被访问的程序段和数据放入外存 中,待需要访问它们时再将它们调入内存。那么, 对于那些一部分数据和程序段在内存而另一部分在 外存的进程,怎样安排它们的地址呢? 通

6、常由用户编写的源程序,首先要由编译程序编译 成CPU可执行的目标代码。然后,链接程序把一个 进程的不同程序段链接起来以完成所要求的功能。 显然,对于不同的程序段,应具有不同的地址。将进程中的目标代码、数据等的虚拟地址组成的虚拟空 间称为虚拟存储器(virtual store或virtual memory)。虚 拟存储器不考虑物理存储器的大小和信息存放的实际位 置,只规定每个进程中互相关连信息的相对位置。与实 际物理存储器数量有限,且被所有进程共享不一样,每 个进程都拥有自己的虚拟存储器,且虚拟存储器的容量 是由计算机的地址结构和寻址方式确定的。 直接寻址时,如果CPU的有效地址长度为16位,则

7、其寻 址范围为0到64K。用户编制程序时使用的地址称为虚地址或逻辑地址,其 对应的存储空间称为虚存空间或逻辑地址空间;而计算 机物理内存的访问地址则称为实地址或物理地址,其对 应的存储空间称为物理存储空间或主存空间。程序进行 虚地址到实地址转换的过程称为地址重定位。 图中,编译和链接主要是语言系统的设计问题,而虚拟存 储器到物理存储器的变换是操作系统必须解决的问题。要 实现这个变换,必须要有相应的硬件支持,并使这些硬件 能够完成统一管理内存和外存之间数据和程序段自动交换 的虚拟存储器功能。即,由于每个进程都拥有自己的虚存 ,且每个虚存的大小不受实际物理存储器的限制,因此, 系统不可能提供足够大

8、的内存来存放所有进程的内容。内 存中只能存放那些经常被访问的程序和数据段等。这就需 要有相当大的外部存储器,以存储那些不经常被访问或在 某一段时间内不会被访问的信息。待到进程执行过程中需 要这些信息时,再从外存中自动调入主存。地址变换与物理存储器虚拟内存是计算机系统内存管理的一种技术。它使得应 用程序认为它拥有连续的可用的内存(一个连续完整的 地址空间),而实际上,它通常是被分隔成多个物理内 存碎片,还有部分暂时存储在外部磁盘存储器上,在需 要时进行数据交换。目前,大多数操作系统都使用了虚 拟内存,如Windows家族的“虚拟内存”;Linux的“交 换空间”等。 虚拟内存别称虚拟存储器(Vi

9、rtual Memory)。电脑中所 运行的程序均需经由内存执行,若执行的程序占用内存 很大或很多,则会导致内存消耗殆尽。为解决该问题, Windows中运用了虚拟内存技术,即匀出一部分硬盘空 间来充当内存使用。当内存耗尽时,电脑就会自动调用 硬盘来充当内存,以缓解内存的紧张。 1.外存(如磁盘)上存放的程序和数据( )。 A、可由CPU直接访问 B、必须在CPU访问之前移 入内存 C、是必须由文件系统管理的 D、必须由进程调度程序 管理 2.当程序经过编译或者汇编以后,形成了一种由机器指令组 成的集合,被称为( )。 A、源程序 B、目标程序 C、可执行程序 D、非执行程序 3.可由CPU调

10、用执行的程序所对应的地址空间为( )。 A、符号名空间 B、虚拟地址空间 C、相对地址空间 D、物理地址空间 4. 存储管理的目的是( )。 A、方便用户 B、提高内存利用率 C、方便用户和提高内存利用率 D、增加内存实际容量( )1、动态存储分配时,要靠硬件地址变换机构实现重定位 。 ( )2、虚拟存储器实际上是一种设计技巧,使主存物理容量 得到扩大。 ( )3、利用对换技术扩充内存时,设计时必须考虑的问题是 :如何减少信息交换量,降低交换所用的时间。 ( )4、虚拟存储方式下,程序员编写程序时,不必考虑主存 的容量,但系统的吞吐量在很大程度上依赖于主存储器的 容量。 ( )5、虚拟存储空间

11、实际上就是辅存空间。 虚拟存储空间不是一个实际存在的存储空间,是操作系统对 逻辑内存的扩充 ( )6、在虚拟存储系统中,操作系统为用户提供了巨大的存 储空间。因此,用户地址空间的大小可以不受任何限制。5.1.2 地址变换 内存地址的集合称为内存空间或物理地址空间。内存中,每 一个存储单元都与相应的称为内存地址的编号相对应。显然 ,内存空间是一维线性空间。 虚存的一维线性空间或多维线性空间变换到内存的唯一的一 维物理线性空间所涉及的两个问题: 第一个问题是虚拟空间的划分问题。 虚拟空间的划分使得编译链接程序可以把不同的程序模块(它们 可能是用不同的高级语言编写的),链接到一个统一的虚拟空间 中去

12、。虚拟空间的划分与计算机系统结构有关。 VAX-11型机中的虚拟空间就是划分为进程空间和系统空间两大 部分,而进程空间又更进一步划分为程序区和控制区。VAX-11 的虚拟空间容量为232单元,其中程序区占230单元,用来存放用 户程序,程序段以零为基址动态地向高地址方向增长,最大可达 230-1号单元。控制区也占230个单元,存放各种方式和状态下的 堆栈结构及数据等,其虚拟地址由231-1号地址开始由高向低地址 方向增长。系统空间占231个单元,用来存放操作系统程序。图5.2 VAX-11机虚拟空间的划分第二个问题是把虚拟空间中已链接和划分好的内容装入内存,并将 虚拟地址映射为内存地址的问题,

13、称之为地址重定位或地址映射。 地址映射就是要建立虚拟地址与内存地址的关系。实现地址重定 位或地址映射的方法有两种:静态地址重定位和动态地址重定位 。 静态地址重定位(static address relocation)是在虚拟空间程序执行 之前由装配程序完成地址映射工作。 对于虚拟空间内的指令或数据来说,静态地址重定位只完成一个首 地址不同的连续地址变换。 它要求所有待执行的程序必须在执行之前完成它们之间的链接,否 则将无法得到正确的内存地址和内存空间。 优点是不需要硬件支持。 缺点1:使用静态重定位方法进行地址变换无法实现虚拟存储器。 缺点2:必须占用连续的内存空间,这就难以做到程序和数据的

14、共 享。 动态地址重定位(dynamic address relocation)是在程序执行过程 中,在CPU访问内存之前,将要访问的程序或数据地址转换成内 存地址。动态重定位依靠硬件地址变换机构完成。地址重定位机构需要一个(或多个)基地址寄存器BR和一个(或多个 )程序虚拟地址寄存器VR。指令或数据的内存地址MA与虚拟地址的关 系为:MA=(BR)+(VR)这里,(BR)与(VR)分别表示寄存器BR与VR中的 内容。动态重定位过程可参看图5.3。图5.3动态地址重定位 动态重定位的具体过程: 设置基地址寄存器BR,虚拟地址寄存器VR。 将程序段装入内存,且将其占用的内存区首地址送BR中。例如

15、,在 图5.3中,(BR)=1000。 在程序执行过程中,将所要访问的虚拟地址送入VR中,例如在图 5.3中执行LOAD A 500语句时 ,将所要访问的虚拟地址500放入VR 中。 地址变换机构把VR和BR的内容相加,得到实际访问的物理地址。 动态重定位的主要优点有: 可以对内存进行非连续分配。显然,对于同一进程的各分散程序段 ,只要把各程序段在内存中的首地址统一存放在不同的BR中,则可 以由地址变换机构变换得到正确的内存地址。 动态重定位提供了实现虚拟存储器的基础。因为动态重定位不要求 在作业执行前为所有程序分配内存,也就是说,可以部分地、动态 地分配内存。从而,可以在动态重定位的基础上,在执行期间采用 请求方式为那些不在内存中的程序段分配内存,以达到内存扩充的 目的。 有利于程序段的共享。1.把逻辑地址转变为内存的物理地址的过程称做( )。 A、编译 B、连接 C、运行 D、重定位 2.经过( ),目标程序可以不经过任何改动而装入物理内存单元。 A、静态重定位 B、动态重定位 C、编译或汇编 D、存储扩充 3.存储分配解决多道作业1划分问题。为了实现静态和动态存储分配,需 采用地址重定位,即把2变成3,静态重定位由4实现,动态重定 位由5实现。 供选择的答案

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号