计算机操作系统第四章

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

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

1、第四章 存储器管理u 存储器的层次结构 u 程序的装入和链接 u 连续分配方式 u 基本分页存储管理方式 u 基本分段存储管理方式 u 虚拟存储器 u 请求分页存储管理方式 u 页面置换算法 u 请求分段存储管理方式目的:内存有限,有效地对内存进行 管理4.1 存储器的层次结构一 多级存储器结构CPU寄存器高速缓存主存磁盘缓存磁盘可移动存储介质速度越快 价格越高 容量越小可执行存储器,是 OS存储管理的对象。 信息掉电即丢失。 对它的访问,通过 OS指令即可,耗费 时间少,访问速度快辅存,对它的 访问通过I/O 设备来实现二 寄存器与主存 1 寄存器 寄存器是CPU的组成部分,可用来暂存指令、

2、 数据和地址。容量小,价格十分昂贵。 在CPU的控制部件中,包含的寄存器有指令寄 存器和程序计数器;在中央处理器的算术及逻 辑部件中,包含的寄存器有累加器。 寄存器是内存阶层中的最顶端,也是系统获得 操作资料的最快速途径,完全能与CPU协调工作 。寄存器的长度通常以“字”作为单位。 2 主存储器 内存指的就是主板上的存储部件,用于保存 进程运行时的程序和数据。 CPU直接与之通信,从中读数据送入寄存器 ,或将寄存器的数据写入内存, 内存的访问速度远低于CPU的指令执行速度 ,为缓和这一矛盾,引入了高速缓存。三 高速缓存和磁盘缓存一 高速缓存 l 在CPU和主存之间增加的用于提高系统执行 效率的

3、存储器,即Cache。速度比内存快,容 量介于寄存器与内存之间。 l 根据程序执行的局部性原理,将主存中经常 被访问的信息存放在Cache中。CPU取数据时 ,先从Cache中寻找,若没有,再去内存寻找 。 l 高速缓存可有多级,一级高速缓存紧靠内存 ,速度最快,容量最小;二级高速缓存容量稍 大,速度稍低。二 磁盘缓存 由于磁盘的I/O速度远低于对内存的访问速度 ,因此将频繁使用的一部分磁盘数据和信息, 暂时存放在磁盘缓存中,以提高访问速度。 磁盘缓存并不实际存在,依托于固定磁盘, 提供对主存空间的扩充。 它的原理是:将一段时间内常用的磁盘数据 放在内存的某个区域;或将CPU处理完后需要 输出

4、的数据暂存于内存的某个区域。4.2 程序的装入和链接p 从源程序到程序执行 p 地址空间的概念 p 重定位的概念 p 程序的装入 p 程序的链接一 从源程序到程序执行 编译:编译程序 由编译程序(Compiler)将用户源代码编译成若干个目 标模块。 链接:链接程序 由链接程序(Linker)将编译后形成的一组目标模块, 以及它们所需要的库函数链接在一起,形成装入模块。 装入:装入程序 由装入程序(Loader)将装入模块复制到内存中。库汇编 编译主子1子2目标模块链接程序装入模块库主子1子2装入程序内存库主子1子2二 地址空间 物理(绝对)地址程序执行 每个内存单元的固定顺序地址(编号)。

5、由物理地址组成的空间集合称为物理空间。 逻辑(相对)地址装入(汇编编译) 被链接装配(或汇编、编译)后的目标模块所 限定的地址的集合; 相对于某个基准量(通常为:0)的编址。 由逻辑地址构成的空间集合称为逻辑空间。物理地址 内存00000 00001 00002. . .0100001FFF主子1子2主子1子2逻辑地址 装入模块000. . .DFF主子1子2相对地址 源程序/单个目标模块0005FF0003FF0003FF三 重定位 重定位 概念:把程序装入内存时,修改程序中所有 与地址有关的项。 逻辑地址变换为物理地址。 重定位的类型 静态重定位:程序执行前,一次性地变换 地址并装入内存。

6、 动态重定位:处理机每次访问内存时,由 动态地址变换机构(硬件)自动执行地址 变换。作业地址空间 内存空间装入365LOAD 1,2500500025001000365LOAD 1,250015000125001000011000365LOAD 1,1250015000125001000011000内存地址空间四 程序的装入 就是把链接好的装入模块装入“内存”。 装入方式 绝对装入 可重定位装入(静态重定位) 动态运行时装入(动态重定位)u 绝对装入方式 要求:事先清楚程序将驻留在内存的什么位置 该内存地址可由程序员给出,也可由编译程序 申请。 概念:装入程序直接按照装入模块中的地址, 将程序

7、和数据装入内存。逻辑地址与内存地址相 同,无须进行地址变换。 局限:仅可应用于单道程序环境中u 静态重定位 在装入程序将装入模块装入内存时,进行 逻辑地址到物理地址的转换 数据地址和指令地址都要做相应修改 地址变换在程序装入内存时一次完成, 一旦程序装入内存,不允许它在内存空间 移动。u 动态重定位 装入程序将装入模块装入内存后,并不 立即将相对地址转换为绝对地址,而是将 地址转换推迟到程序执行时才进行。 为避免程序运行时,进行地址转换影响 指令执行的速度,需要重定位寄存器的支 持五 程序的链接 链接: 把一个程序相关的一组目标模块和系统调用模块( 库函数)链接形成一个整体装入模块的过程。 具

8、体工作: 对相对地址的修改;变换外部调用符号。 链接方式: 静态链接 装入时动态链接:便于修改和更新;便于共享。 运行时动态链接:最小化快速装入,节省内存。u 静态链接方式 程序运行前,先将各目标模块及它们所需要 的库函数,链接成一个完成的可装入模块,以 后不再拆开。 要做的两项工作:1 修改相对地址2 将外部调用符号修改成相对地址模块A Call B; Return;0L-1模块B Call C; Return;0M-1模块C ; Return;0N-1链接模块A JSR “L”; Return;0L-1模块B JSR “L+M”; Return;LL+M-1模块C ; Return;L+M

9、L+M+N-1装入模块u 装入时动态链接 并不事先链接成一个可装入模块 源程序经过编译得到的目标模块,在装入内 存时边装入边链接。 即在装入一个目标模块时,若发生外部调用 事件,则由装入程序找出相应的外部目标模块 ,进行链接并装入内存。此时,也应修改目标 模块中的相对地址。 优点:便于修改、更新和共享 将对某些模块的链接推迟到程序执行时进行 。 即,在程序执行过程中,发现一个被调用模 块尚未调入内存,立即由OS去找到该模块,并 将其装入内存,链接到调用者模块上。 优点:程序执行时,未用到的模块,都不进 入内存,不进行链接。加快了程序的装入过程 ,节省了内存空间。u 运行时动态链接4.3 连续分

10、配方式 单一连续分配 固定分区分配 动态分区分配 可重定位分区分配 对换连续分配方式:为用户程序分配一个连续的内存 空间。曾在20世纪60-70年代被广泛应 用,至今仍在内存分配方式中占有一席 之地。一 单一连续分配 单一连续分配的基本思想 把内存分为系统区和用户区,系统区供OS使用 ,通常放在低址部分;系统区以外的全部内存空 间是用户区。 单一连续分配的特点 只能用于单用户、单任务的OS中。 软件简单,硬件要求低(无需存储保护) 实例 CP/M,MS-DOS,RT-11DOS内存分区 CP/M内存分配系统参数区BIOS CCPBDOS系统区系统区二 固定分区分配 基本思想将内存的用户空间划分

11、成若干个固定大 小的区域,在每个分区中只允许装入一道作 业。 特点: p 有几个分区,则允许几道作业并发执行 p 当有空闲分区时,则从外存后备队列选择 一个适当大小的作业进入该分区。 划分分区的方法 分区大小相等 分区大小不相等缺乏灵活性:作业小,造成内存空间的浪费; 作业大,一个分区装不下,作业无法运行。因 此,常用于工控系统中。将用户区划分成具有多个较小的分区、适量的 中等分区及少量的大分区,以满足不同作业的 需求 内存分配管理 分区使用表(MBT) 分区按大小排队 由内存分配程序检索分区使用表,找 到符合要求的分区。区号/键大小位置状态18 K512K正使用232 K520K正使用332

12、 K552K未使用4128 K584K未使用5512 K712K正使用系统区分区 1分区 4分区 5分区 2分区 3系统区作业 3分区 4作业 2作业 1分区 3 存储保护与重定位(地址转换) 每个分区(一道程序)对应一对界地址寄存 器:上/下限寄存器。 采用静态重定位方式,即由链接/装入程序完 成。 优缺点 优点:简单,要求的硬件支持少(一对R) ; 缺点:存在大的碎片(内碎片),主存利用 率低。 碎片很多小的内存空间 内碎片碎片处于分区内部 外碎片碎片处于分区与分区之间三 动态分区分配 思想 位置和大小都不固定,根据进程的实际 需要,动态分配内存空间,又称可变分 区分配。例子:一计算机系统

13、有2560KB内存,采用可变分区模式管理, OS占低地址的400KB空间,用户内存为2160KB。如图所示:OSP1OSP1P2OSP1P2P3OSP1P4空闲P3OS注意 1.可变分区模式下,刚开始,OS就绪,但任何 用户程序未进入内存前整个用户内存区是一大空 间。已占用区和空闲分区并不是绝对的。 2.必须用某种数据结构来记录分区的情况。 3.程序进入内存时的例行工作就是分配空闲区和装入程序,并修改相应的数据结构。 4.一旦一个内存分区被分配给一个进程,该进 程被装入时需重定位。 数据结构的两种形式 空闲分区表 空闲分区链空闲分区表用于记录每个空闲分区的情况, 每个空闲分区占一个表目,表目中

14、包括分 区序号、分区始址、分区大小等项目利用双向链表形式,记录空闲分区的使用 情况。每个空闲分区除记录该分区的基本情况外, 还要在头部和尾部分别增加前向指针和后向 指针,以实现对分区的双向链接,便于检索。 存储分配算法 首次适应算法 循环首次适应算法 最佳适应算法 最快适应算法 快速适应算法 u 首次适应算法 数据结构-空闲分区链,按照地址递增的次序链接l 算法-从链首开始顺序查找,把找到的第一个 能满足申请者要求的空闲区分配给申请者。 若空闲区比作业长度大,则分割该空闲区: 一部分分配给作业,剩余部分空闲。若找不到,则内存分配失败,返回。 特点-优先利用内存中低址部分的空闲分区 优点-保留了

15、高址部分的大空闲区,留给以后到 达的大作业。 缺点-低址部分不断被划分,留下很多难以利用 的小碎片-每次查找都是从低址开始,增加了查找的 开销u 循环首次适应算法 改进算法-分配内存空间时,不再是从链首开始查 找,而是从上次找到的空闲分区的下一个空 闲分区开始查找,直到找到一个能满足要求 的空闲分区,然后从中划出与请求大小相等 的内存空间分配给作业。-采用循环查找方式,如果找到链尾仍未 找到合适的分区,则返回链首继续查找。 改进数据结构-增加一起始查询指针,指示下一次起始查 询的空闲分区。l 优点-内存的空闲分区分布更均匀,减少了查找 空闲分区的时间开销l缺点-缺乏大的空闲分区u 最佳适应算法 数据结构-空闲分区链,空闲分区按容量由小到大排 列 算法-为作业分配内存时,把能满足要求的最小 的空闲分区分配给作业l 缺点-每次分配后剩余部分都是最小的,因此会 留下许多难以利用的小碎片u 最坏适应算法 数据结构-空闲分区链,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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