第四章 存储管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空闲分区链:为每个空闲区创建一个信息结点,并将这 些结点构造成一个空闲分区链。每个结点被设臵成分区 状态,分区起始地址分区大小,以及构成链的前后方向 指针。
操作系统的全局 指针-空白分区 链首free 68KB 8K 空闲 96KB 64K 空闲 240KB 16K 空闲
0 40KB
操作系统
作业5(28KB) 作业2(20KB)
3.内存共享
内存共享:内存允许同时有多个程序在运行-多个进程,它们 可能调用相同程序段或使用同一数据体,从而节省内存空间, 减少内外存的数据交换,提高系统的效率
4.存储保护
(1)上下界限保护
M-1 U 上界寄存器 D 下界寄存器 内存 D 0 内存 U 进程i L 限长寄存器 B 0 B 基址寄存器 进程i L M-1
计算机操作系统
Computer Operating System
第四章 存储管理
4.1 存储管理概述
4.2 分区式存储管理
4.3 分页式存储管理
4.4 请求分页存储管理 4.5 分段存储管理 4.6 段页式存储管理
4.1 存储管理概述
4.1.1 内存概念与存储器层次 计算机系统由计算子系统、存储子系统、I/O子系统 组成。 内存用于存放操作系统内核、用户程序指令与程序 运行所需数据。
6.物理组织
计算机的存储器至少由两层组成:内存与外存。 内存:价格较高,存储速度快,处理机可以直接访 问,不能提供程序的持久存储 。 外存:价格低,空间大,提供对程序与数据的永久 存储,不易丢失 。 存储器二层模型优点: ①由于模块运行的不同时,用户的不同模块可以 由系统放臵于同一内存区域,这样可以解决内存 不足,使有限内存提供更大服务可能。 ②由于逻辑地址与物理地址无关,用户程序员编 程只要在逻辑空间进行,不管程序最终装入内存 的位臵,使得编程较为单纯。
(2)最佳适应算法
最佳适应算法是将作业放于容量大于要求的所有 空闲分区中最小的空闲分区中,与本算法相一致 的空闲分区链的组织方式是按空闲分区的大小从 小到大来链接的。这样当分配一个空间时,首先 从全局的首指针free开始,找到的第一个空间大 于所需值的分区即是分配后产生剩余空间最小的 空闲区 。 Free
动态重定位过程
5000 5100 mov r,2500 处理器的重 定位寄存器 5000
+ 7500 234
动态重定位的过程
优点: ①程序装入后,再在内存移动时,只要修改其PCB中的起始 地址,则重定位依然能正确运行,这为存储空间紧缩与内存 碎片处理提供了可能。 ②系统程序由多个目标模块组成,可以分块装入,只是在 执行到某个模块时将其起始地址送重定位寄存器RR即可正确 重定位。这使一个程序在内存不一定需要连续的内存空间, 有利于充分利用内存。 ③多个进程共享程序或数据段时,可以只要一个副本。只 要建立多个进程的共享模块的起始地址到该唯一副本的起始 地址的对应关系表,就可以正确实现重定位工作。
Free
96KB 64KB 空闲 240KB 16KB 空闲 68KB 8KB 空闲
0 40KB
操作系统
作业5(28KB)
8KB
作业2(20KB)
作业6(14KB) 50KB
作业4(80KB) 256KB
作业6装入
16KB
最坏适应算法的实现
(4)下次适应算法 下次适应算法中空闲分区按地址从低到高组织,但它的 尾部会再回到低地址的一端形成一个环形链,系统增加 一个上次分配分区的指针。每次分配时总是将作业放入 从上次分配分区指针开始沿着环方向的下一个合适的空 闲分区。 Last
4.2 分区式存储管理
4.2.1 固定式分区 固定式分区是操作系统初启(正式创建用户进程之 前)时,由操作系统事先设定或由系统操作员确定, 将内存区域划分成若干分区。分区的个数,各分区 的大小一旦确定,则整个操作系统运行阶段都保持 不变。固定式分区也称为静态分区。 分区说明表:是存储管理程序实现管理工作的依据, 它在内存分配、释放、存储保护以及地址转换时都 要查询与修改表中的信息。
~
0 10240 (10KB) 逻辑地址 mov r,2500 mov r,2500
2500
~
限长寄存器LR 基址寄存器BA
4KB 10KB
Y 2500 12740 234 地址越界中断 234
小于LR
+
4KB 逻辑地址空间 ~ 内存 ~
物理地址
分区式管理的地址变换
4.3 分页式存储管理
4.3.1 页面与物理块 首先将内存空间划分成固定大的相等大小的小区域, 这些小区域被称为内存的物理块或块。 从地址0开始递增编号,当系统为一个作业分配内存 前,也将作业的逻辑地址空间划分成若干与内存块 大小相等的区域,称为页或页面。 用户程序中的逻辑地址被理解成为由相对页号与页 内有偏移地址两部分组成:页号+页内地址。
固定分区的说明与使用情况
4.2 分区式存储管理
4.2.2 可变式分区 1.概念 可变式分区是指内存分区的情形(分区数、各分区 的大小)是可以变化的,而不像固定式分区那样, 在系统初启时已经确定而不能改变。 可变式分区是在操作系统运行期间装入用户程序时 划分的,所以可变式分区又称为动态分区。
0 40KB
7.虚拟存储器
虚拟存储器是指具有请求调入功能和臵换功能, 能从逻辑上对内存容量进行扩充的一种存储系 统。它不是一个实际的物理存储器,而是一个容 量可以非常大的存储器的逻辑模型,在该模型的 支撑下,把程序的一部分装入内存便可以执行。 特点:
① 虚拟的: 大小由OS决定 ② 逻辑模型: 概念,原理,技术解决方案, 具体实现 ③部分执行
256KB-1
区号 1 2 3 4 5 区域大小 10K 20K 20K 50K 106K 50KB 60KB 80KB 100KB 150KB 起始地址 使用状态 已分配 已分配 未分配 已分配 未分配
106K 150KB 50K 100KB 80KB 60KB 50KB OS 0 20K 20K 10K 50K
界限寄存器的存储保护 (a)上下界限寄存器保护 (b) 基址、限长寄存器保护
(2)存储键保护 为每个进程的连续存储区域分配一个若干位组成的存储保护 键(钥匙)。
程序状态字PSW 保护键(钥 匙)
保护键 (锁)
相同 N 存储保护 出错
Y 访存
内存
存储保护键的内存保护
5.逻辑组织
计算机系统中的内存被组织成一维的地址空间, 它由一系列以字节为单位的存储单元组成。 优点: ①以模块单独编写与编译,所有关于此模块的引 用就可以放在该模块运行时由操作系统来解决, 这样可以方便程序的编写与功能分解。 ②可以按模块的特性赋以不同的保护特征有利于 软件的保护。 ③模块的使用符合用户看待问题的思路,使其共 享变得自然。
装入作业1,2,3,4
作业5装入
可变式分区的内存变化情况
2.可变式分区的放置算法
空闲分区表:内存中的一个空闲分区对应于空闲分区表 中的一行。它包含:区号、分区大小、分区起始地址以 及分区使用状态 。空闲分区表如下所示:
序号 1 2 3 分区大小 8KB 64KB 16KB 起始地址 68KB 96KB 240KB 使用状态 空闲 空闲 空闲
0 200 mov r,2500 0KB
......
页号 1KB 0 1 2KB 2500 234 2 3 8 4 8KB 作业2的页表 (在内存) 16KB 作业2的逻辑地址空间 物理帧 3KB mov r,2500
4KB 234
......
3KB
......
内存
内存的分页和页表
4.3.3 分页式系统的地址转换
操作系统
0 40KB
操作系统 作业1(36KB)
作业2(20KB)
0 40KB
操作系统
0 40KB
操作系统
作业5(28KB) 作业2(20KB)
作业2(20KB)
作业3(64KB)
作业4(80KB) 256KB
系统开始
作业4(80KB) 256KB 256KB
作业1,3完成
作业4(80KB)
256KB
4.1 存储管理概述
4.1.2 存储管理 1.内存空间管理 内存空间管理系统首先要记录内存的各级分配单元 的使用状态,负责内存区域的分配与回收。根据不 同的分配方法,大的内存区域分割成大小不同的子 区域以适应不同的用户对内存的请求,因此系统要 记录这些区域的位臵划分和使用情况,系统负责响 应用户请求,以适合的空间分配给它,并修改使用 状态来反映当前系统的状态。 2.重定位 重定位:由相对地址到物理地址的地址转换。 (1)静态重定位 静态重定位是在程序运行之前进行重定位的一 种地址变换方式 (2)动态重定位 动态重定位是指虚-实地址变换是在程序运行 过程中通过硬件来实现的。
作业6(14KB)
作业4(80KB) 256KB
作业6装入
可变分区的空闲分区链
放臵算法介绍 (1)首次适应算法 首次适应算法是将作业放臵到主存里大小足以 放下作业,且地址最小的空闲分区中。当选中 的分区空闲大于作业所需的空闲时,将原来的 分区分割成两个区域:其中一个分区大小等于 作业所需的空间,剩余的空间作为空闲分区。 若系统用空闲分区链来管理的话,空闲分区链 中的各结点按照地址从小到大来组织。 优点: 优先保证了低地址的空闲区被使用,而使高地 址端的空闲区较大,以满足大空间的要求。
地址总线 数据总线 CPU I/O接口 内存 CPU
I/O系统
内存
I/O设备
设备
源自文库计算机系统中内存的位置
1.存储层次
存储层次:采用不同的存储介质来存取系统中不同频度 的信息,使这些存储器有机的联系形成一个体系 。
cache
访 问 频 度 变 大
内存
容 量 增 大
速 度 增 快
价 格 变 贵
外存
存储层次关系 图
0KB
页0
1KB
页1
1042 1042
000001 0000010010
页号 页内地址
1
18
2KB ...... 逻辑地址空间
逻辑地址空间的分页
4.3.2 页表
分页式系统中,一个完整连续的逻辑地址空间被分割成 大小相等的页面被分布到内存中分散的若干块上,系统 为了掌握各个页面被具体放臵的物理块,为每个进程建 立一张页表 。 页表的表目由页号和物理块号组成,它实现了从逻辑的 页号到物理的块号的映射。它反映了该作业逻辑地址空 间的每个页面在物理内存的存放位臵。
一个作业一旦被装入内存,它的页表也就由系统创建。 利用页表,系统动态地进行重定位工作。分页系统的分 页机构可以将逻辑地址分割成页号与页内地址。
PCB
mov r,2500
0 页表首址
0 200
页号 页内地址 P W
2 3
0KB
......
3KB mov r,2500
1
处理机的 页表寄存器
1KB
B
W
4KB 234
......
2KB 234 3KB 作业2的逻辑地址空间
4
页号 0 1 2
帧号 3 8 4
8KB
......
16KB
作业2的页表
内存
分页系统的地址变换示意图
4.3.4 采用快表的地址转换
为提高地址变换的速度,很多系统增加了一个高速缓冲 存储器,它由处理机速度相近的半导体存储器构成,具 有并行查询能力,这种存储器称为联想存储器 。 快表:系统通常将页表中当前访问的那些表目放于联想 存储器,这个部分的页表称为“快表”,
68K 8K 空闲 240K 16K 空闲 96K 64K 空闲
0 40KB
操作系统
作业5(28KB) 作业2(20KB)
8KB
64KB
最佳适应算法的实现
作业4(80KB)
作业6(14KB) 2KB
作业6装入
(3)最坏适应算法 最坏适应算法是将作业放入空间大于分区需求的最大空 闲分区中,原来的空闲分区被分成一个大小正好适用的 分区和一个相对最大剩余的空闲分区。 采用最坏适应算法的系统中空闲分区链按空间从大到小 顺序组织,这样从首指针开始找到的可用第一个结点就 对应了最大空闲分区。
Free
68KB 8KB 空闲 96KB 64KB 空闲 240KB 16KB 空闲
0 40KB
操作系统
作业5(28KB)
8KB
作业2(20KB)
作业6(14KB) 50KB
作业4(80KB) 256KB
作业6装入
16KB
下次适应算法的实现
3.分段式管理的地址变换
采用基址寄存器作为重定位寄存器来动态进行重定位的 工作。每当作业被调度运行时,处理机的基址寄存器里 面就设臵为该作业内存分区的起始地址。以后在作业运 行过程中,每次执行访存指令,逻辑地址都与这个基址 寄存器内容相加作为访存的物理地址。如果系统再设臵 一个限长寄存器,它也是在调度时被设成该作业的大小, 则可以进行存储保护,防止越界错误。