《操作系统原理与实践教程(第二版)》存储管理

上传人:宝路 文档编号:48247333 上传时间:2018-07-12 格式:PPT 页数:99 大小:1.06MB
返回 下载 相关 举报
《操作系统原理与实践教程(第二版)》存储管理_第1页
第1页 / 共99页
《操作系统原理与实践教程(第二版)》存储管理_第2页
第2页 / 共99页
《操作系统原理与实践教程(第二版)》存储管理_第3页
第3页 / 共99页
《操作系统原理与实践教程(第二版)》存储管理_第4页
第4页 / 共99页
《操作系统原理与实践教程(第二版)》存储管理_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《《操作系统原理与实践教程(第二版)》存储管理》由会员分享,可在线阅读,更多相关《《操作系统原理与实践教程(第二版)》存储管理(99页珍藏版)》请在金锄头文库上搜索。

1、第5章 存 储 管 理 5.1 存储管理的概念 5.2 连续内存分配 5.3 内存不足时的管理 5.4 分页存储管理 5.5 分段存储管理 5.6 段页式存储管理 5.7 虚拟存储器 5.8 请求分页存储管理技术5.1 存储管理的概念n为了解决CPU和存储器之间速度上的不匹配,在 现代计算机系统中,存储系统通常采用层次结构 ,存储层次可粗略分为三级:最高层为CPU寄存 器,中间为主存,最底层是辅存。n根据具体功能还可以细分为寄存器、高速缓存、 主存储器、磁盘缓存、辅存储设备(固定磁盘、 可移动存储介质)5层。 5.1 存储管理的概念n操作系统的存储管理负责对存储器空间的分配、 回收以及提供存储

2、层次间数据移动的管理机制。n例如主存与磁盘缓存、高速缓存与主存间的数据 移动等。5.1.1 多级存储结构 n1. 寄存器 寄存器是中央处理器的组成部份。寄存器访问速 度最快,完全能与CPU协调工作,价格昂贵,容 量不大。寄存器可用来暂存指令、数据和地址。寄存器的长度一般以字(word)为单位。寄存器可 以加速对存储器的访问速度,用途包括:l(1)暂存执行算术及逻辑运算的数据;l(2)用于寻址,存于寄存器内的地址可用来指向内存的 某个位置;l(3)用来读写数据到计算机的外围设备。 5.1.1 多级存储结构n2. 主存储器 主存储器(简称内存或主存)是用于保存当前进程运行时的程 序和数据。 CPU

3、能直接随机存取内存中的数据和程序,CPU的控制部 件从内存中读取数据并将它们装入到寄存器中,或者从寄 存器存入到内存。CPU与外围设备交换信息一般也借助于主存储地址空间。 内存以字节为基本存储单位,每个存储单元分配一个唯一 的地址,称为内存地址。主存储器的访问速度远低于CPU执行指令的速度,为缓和 这一矛盾,在计算机系统中引入了寄存器和高速缓存。 5.1.1 多级存储结构n3. 高速缓存 高速缓存介于中央处理器和主存储器之间的高速小容量存 储器,其容量大于寄存器而小于主存储器,访问速度要快 于主存储器而低于寄存器。工作原理为:根据程序局部性原理,正在使用的主存储器 某一单元邻近的那些单元将被访

4、问的可能性很大。由于高速缓存的速度越高价格也越贵,因此目前的计算机 系统中多设置两级或多级高速缓存。两级缓存比一级缓存 速度慢,但容量更大,主要用做一级缓存和内存之间数据 临时交换的地方。缓存中存放的都是CPU频繁访问的数据,所以缓存越大处 理器效率就越高,同时由于缓存的物理结构比内存复杂很 多,所以其成本也很高。 5.1.1 多级存储结构n4. 磁盘缓存磁盘缓存是操作系统为磁盘输入输出而在普通物 理内存中分配的一块内存区域。由于目前磁盘的I/O速度远低于主存的访问速度, 因此根据程序局部性原理,将频繁访问的一部分 磁盘数据和信息,暂时存放在磁盘缓存中,可减 少访问磁盘的次数,提高访问速度。磁

5、盘缓存分为读缓存和写缓存。 5.1.2 程序的运行过程 n在多道程序环境下,要使 程序运行,必须先为之创 建进程。而创建进程的第 一件事,便是将程序和数 据装入内存。n如何将一个用户源程序变 为一个可在内存中执行的 程序,简单的说,要经过 编辑、编译、链接、装入 和运行等几个阶段。 5.1.2 程序的运行过程n1. 编辑阶段在编辑阶段,用户使用某种编辑软件把程序代码 输入到计算机中,并以文件的形式保存到指定的 磁盘上,形成用户的源程序文件,即源文件。n 2. 编译阶段计算机只能识别二进制语言,所以源程序文件不 能直接在计算机上运行,必须经过编译软件的编 译,形成相应的二进制目标代码后才能被计算

6、机 识别。通常,用户程序的执行需要经过编译阶段 ,由初始的文本文件(file1.c)变成CPU可以识别的 一系列二进制代码文件(file1.o)。 5.1.2 程序的运行过程n3. 链接阶段 将编译或汇编后得到的一组目标模块以及它们所需的库函 数装配成一个完整的装入模块的过程就是程序的链接阶段 。根据链接时间的不同,链接可分为三种: l(1) 静态链接。在程序运行之前,先将各目标模块及它们所 需的库函数,链接成一个完整的装配模块,以后不再拆开 。 l(2) 装入时动态链接。用户源程序编译后得到的一组目标模 块,在装入内存时,采用边装入边链接的链接方式,即在 装入一个目标模块时,若发生一个外部模

7、块调用事件,将 引起装入程序去找出相应的外部目标模块,并将它装入内 存。 l(3) 运行时动态链接。对某些目标模块的链接,是在程序执 行中需要该模块时,才对它进行链接。运行时动态链接是 装入时动态链接方式的一种改进,即在执行过程中,当发 现一个被调用模块尚未装入内存时,立即由系统去找到该 模块并将之装入内存,把它链接到调用模块上。 5.1.2 程序的运行过程n4. 装入阶段 CPU在运行程序时,首先要把用户程序装入内存。为了保证程 序的正确执行,程序在装入内存时要进行重新定位,即将程序和 数据捆绑到内存地址,以便CPU能够正确寻址。通常,程序装入 内存的方式有以下3种: l(1) 绝对装入方式

8、。在程序编译时如果就知道进程在内存中的驻留地 址,那么就可以生成绝对地址。装入模块可以把用户程序装入到指定 的位置,这时程序中用到的所有地址都是内存中的绝对地址。l(2) 可重定位装入方式。在多道程序环境下,程序编译链接后的目标 模块起始地址通常是从0开始的,程序中的其它地址也都是相对于起 始地址计算的。此时采用可重定位装入方式,根据内存的当前情况, 将目标模块装入到内存的适当位置。 l (3) 动态运行时装入方式 。动态运行时的装入程序把目标模块装入内 存后,并不立即把目标模块中的相对地址转换为绝对地址,而是把这 种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所 有地址都仍是相对

9、地址。为使地址转换不影响指令的执行速度,这种 方式需要一个重定位寄存器的支持。 5.1.2 程序的运行过程n5. 运行阶段在运行阶段,进程调度程序按照某种策略选中用 户程序,给其分配CPU使之运行,完成用户提交 的任务。运行完毕后,系统释放其占有的内存空 间。 5.1.3 存储管理的任务和功能 n存储管理的主要任务是:(1) 支持多道程序的并发执行,使多道程序能共享 存储资源,在互不干扰的环境中并发执行。(2) 方便用户,使用户减少甚至摆脱对存储器的管 理,使用户从存储器的分配、保护和共享等繁琐 事物中解脱出来。(3) 提高存储器的利用率和系统吞吐量。(4) 从逻辑上扩充内存空间,支持大程序能

10、在小的 内存空间运行或允许更多的进程并发执行。 5.1.3 存储管理的任务和功能n现代操作系统的存储管理应具有以下功能:1. 存储空间的分配和回收l为每道程序分配内存空间,使它们“各得其所”;尽量提 高存储器的利用率,以减少不可用的存储空间(“碎片”) ;允许正在运行的程序申请附加内存空间,以适应程 序或数据动态增长的需要。l为了合理有效地利用内存,在设计内存分配和回收方 法时,必须考虑和确定以下几种策略和数据结构:(1) 分配结构。(2) 放置策略。(3) 交换策略。(4) 调入策略。(5) 回收策略。5.1.3 存储管理的任务和功能n2. 地址转换 在将用户程序部分或全部地装入内存空间时,

11、要实现逻辑 地址到物理地址的映射。这种把逻辑地址转换为物理地址 的过程称作重定位或地址映射,实现地址重定位或地址映 射的方法有两种:静态地址重定位和动态地址重定位。 (1) 静态地址重定位l静态地址重定位是指在用户程序执行之前完成地址映射工 作,即把程序的逻辑地址都转换为实际的内存物理地址。 静态地址重定位的地址变换只是在装入时一次完成,而在 程序运行期间不再变化。l静态地址重定位的优点是不需要硬件支持,实现存储管理 的软件算法简单。l静态重定位的缺点如下:1) 要求给每个作业分配一个连续的存储空间,并且在作业执行期间 不能再移动,从而也就不能实现重新分配内存。 2) 静态地址重定位必须占用连

12、续的内存空间,这就难以做到程序和 数据的共享。 3) 用户必须事先确定所需的存储量,若所需的存储量超过可用存储 空间时,用户必须考虑覆盖结构。 5.1.3 存储管理的任务和功能n(2) 动态地址重定位动态地址重定位是指在程序执行过程中,CPU在 访问内存之前,将要访问的程序或数据地址转换 为内存地址。 地址重定位机构需要一个(或多个)基地址寄存器 BR和一个(或多个)程序逻辑地址寄存器VR。指令 或数据的内存地址MA与逻辑地址的关系为:MA=(BR)+ (VR) 5.1.3 存储管理的任务和功能n(2) 动态地址重定位动态地址重定位具体过程如下:l1) 初始化基地址寄存器BR,逻辑地址寄存器V

13、R。l2) 将程序段装入内存,且将其占用的内存区首地址送到BR中。例如 ,在图5-4中,(BR)=4000。l3) 在程序执行过程中,将所要访问的逻辑地址送入VR中,例如,在 图5-4中执行LOAD 1,400语句时,将所要访问的逻辑地址400放入VR 中。l4) 地址变换机构把VR和BR的内容相加,得到实际访问的物理地址。 5.1.3 存储管理的任务和功能n(2) 动态地址重定位动态地址重定位的主要优点有:l1) 可以对内存进行非连续分配。l2) 用户作业在执行过程中,可以动态申请存储空间和 在主存中移动。动态地址重定位提供了实现虚拟存储 器的基础。l3) 有利于程序段的共享。动态地址重定位

14、的主要缺点有:l1) 需要附加的硬件支持。在进行逻辑地址与物理地址 映射时,需要依靠硬件地址变换机构才能完成。l2) 实现存储管理的软件算法比较复杂。 5.1.3 存储管理的任务和功能n3. 主存空间的共享主存储器空间的共享是为了提高主存空间的利用率,有两方面的 含义:l(1) 共享主存储器资源。采用多道程序设计技术使若干个程序同时进 入主存储器,各自占用一定数量的存储空间,共同使用一个主存储器 。l(2) 共享主存储器的某些区域。若干个作业有共同的程序段或数据时 ,可将这些共同的程序段或数据存放在某个存储区域,各作业执行时 都可访问它们。n4. 主存空间的保护主存储器中不仅有系统程序,而且还

15、有若干道用户程序。为了避 免主存中的多道程序相互干扰,必须对主存中的程序和数据进行 保护。通常由硬件提供保护功能,软件配合实现。 一般来说,一个程序执行时可能有下列三种情况:l(l) 对属于自己主存区域中的信息既可读又可写;l(2) 对公共区域中允许共享的信息或获得可使用的其他用户的信息, 可读而不准修改;l(3) 对未获得授权使用的信息,既不可读又不可写。 5.1.3 存储管理的任务和功能n5. 主存储空间的扩充主存储空间扩充的任务是从逻辑上来扩充内存容量,在计算机硬 件的支撑下,通过软硬件协作,可把磁盘等辅助存储器作为主存 储器的扩充部分来使用,使用户认为系统拥有的内存空间远比其 实际空间

16、大。其原理是根据程序执行时表现的局部性特征,即程序在执行过程 中的一个较短时间内,所执行的指令地址或操作数地址分别局限 于一定的存储区域中。这样,存储管理系统就把进程中那些不经 常被访问的程序段和数据放入外存中,待需要访问时再将它们调 入内存。系统必须具有下述功能:l(1) 调入功能。在程序执行之前,没有必要全部装入内存,允 许仅装入一部分程序和数据即可启动运行,运行时一旦发现运 行所需程序或数据不在内存时,通过请求调入功能,将所需部 分调入内存。l(2) 置换功能。当内存中没有足够空间装入所需调入的部分时 ,系统能通过置换功能将内存中一部分暂时不用的内容调至外 存。 5.1.3 存储管理的任务和功能n6. 对换对换的主要任务是实现在内存和外存之间的全部 或部分进程的对换,即将内存中处于阻塞状态的 进程调换到外存上,而将外存上处于就绪状态的 进程换入内存。对换的目的主要是为了提高内存 利用率,提高系统的吞吐量。 5.1.4 存储管理方式n

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

当前位置:首页 > 中学教育 > 教学课件

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