第4章 存储管理

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空闲区排列:容量(或长度)递减的顺序
查找:从头查找,即从最大的分区开始查找。
特点:优先利用大分区,查找效率高。不容 易形成碎片
缺点:容易缺乏大分区,需要调整划分后分 区的顺序。
例:设系统空闲分区链表为
指针
a
0
7k
b
20
3k
c
35
10k
d
100
8k
e
500
20k
f
2000
5k
用户先后申请7.5k,4k,试用以上四种 分配算法,求出分配块。
对换
➢对换:把内存中暂时不能运行的进程或暂 时不用的程序数据调出到外存上,一边腾 出足够的内存空间,再把一具备运行条件 的进程或进程所需的程序和数据调入内存 。
➢以进程为单位的对换,称为整体对换。 ➢以页或段为单位的对换,称为部分对换。 ➢对换空间是外存的一部分,采取连续分配
方式管理
4.3 基本分页存储管理方式
180K
50K
120K
60K
120K
总结:
➢固定分区分配
特点:分区大小固定不变;分配时较简单, 根据当前空闲 分区的大小情况分配;
缺点:分配时缺乏灵活性,易产生内部碎片。 ➢动态分区分配
余特留点在:系统分中区没大有小被分不配固出定去 ;分配时较复杂,需 并要且也设不置能一利用定的的小数的存据储结空构如空闲分区表或空 间闲分区链;可根据作业大小情况来分配;
(1)覆盖:
(2)交换:P129-130
(3)虚拟存储器(利用辅存):P141-143
附:虚拟存储器
❖ 系统统一管理内外存,程序在运行 时,一部分在内存,一部分在外存, 从效果上看,好象为用户提供了一个 比实际内存器大得多的运行空间,我 们称之为虚拟存储器。
4、对主存中信息提供保护-存储保护
越界保护-范围 存储键保护-存储权限
特点:均匀利用空间,查找开销小。
缺点:可能缺少大的空闲分区
3)最佳适应算法
空闲区排列:容量(或长度)递增的顺序
查找:从头查找,即从最小的分区开始查找。
特点:用最小空间满足要求,较大的空闲区 被保留,有利于满足长作业的 要求。
缺点:查找效率低,需要调整划分后分区的 顺序;会形成外部碎片。
4)最坏适应算法
在装入时对目标程序中的指令和数据 地址的修改过程称为重定位。又因为
地址交换只是在装入时一次完成, 以后不再改变,故称为静态重定位。

4-
1,12500
3 作









-
动态重定位
程序执行时真正要访问的地址
图 4 10 动 态 重 定 位 示 意 图
二、存储管理的目的和功能
1、在多个用户间分配主存-主存分配
软件和硬件结合 的保护措施
4.2 连续分配方式
连续分配方式:是指为一个用户程 序分配一个连续的内存空间。
➢具体的分为四种方式:
单一连续分配 固定分区分配 动态分区分配 动态重定位分区分配
对于内存一般是被分为两个区域:
系统区:存放关于操作系统的文件,处于内 存的低址部分。
用户区:存放用户的程序或文件,除系统区 的剩余内存空间
特点:优先利用低地址空间,将在高地址部 分为后来的大作业保留空间。
缺点:查找效率低,低地址部分不断被划分, 会形成外部碎片。
2)循环首次适应法
空闲区排列:地址递增的顺序
查找:从上次查找结束的下一个位置开始查 找,直至找到可以容纳该作业的空白块, 从中划分作业所需大小空间,剩下的仍保 留在链表中。否则,分配失败。(循环查 找)
缺点:易产生部碎片。
未分配给用户程序的分区但难 以被利用的内存空间
二、可重定位分区分配
➢可重定位分区分配法是利用分区的“拼接” 或“ 紧凑” 技术解决“ 零头”。
动态重定位分区分配方式= “紧凑”技术+重定位+动态分区分配方式
➢可重定位分区的优缺点
优点:解决了可变分区分配所引入的“外 零头”问题。消除内存碎片,提高内存利 用率。
❖具有快表的地址变换机构
图 具有快表的地址变换机构
这个联想存贮器的查表速度可以做到比一般 存储器的速度快一个数量级。
查联想表-物理地址(访问一次主存)
有效地址
同时进行
查页表-物理地址(访问二次主存)
❖存储空间管理
1)页表:系统为每个进程建立一个页表,页 表给出逻辑页号和具体内存块号相应的关 系, 页表放在内存,属于进程的现场信息
❖在计算机内具体实现时,需解决以 下两个问题:
(1)作业的一页究竟分配到内存的哪一个 存储块中?
(2)作业的逻辑地址为连续的,采用这种 办法分配时,所分配到的物理地址不一定 连续,如何保证作业的正常运行?
➢3. 页表
页表记录用户进程的逻辑页面与内存 物理块之间的对应关系,实现逻辑页号到 物理块号的地址映射。
访问主存=访页表+访主存
将作业中最常用的页、块号置入高速 缓存,提高查表速度。
快表(联想存储器)
存放页表部分内容的快速存储器称为 联想存储器,联想存储器中存放的部分页 表称为“快表”。联想存储器一般由8~16 个单元组成,它们用来存放正在运行进程 的当前最常用的页号和相应的块号,并具 有并行查寻能力。
依次分配N个空闲块,将块号和页号填入 页表
修改位示图
➢共享和保护
共享
以页为单位,只需把要共享的页表项加入进程 的页表即可
保护
越界保护 -页表长度寄存器
操作访问保护 -在页表项中增设存储保护域
➢基本分页存储管理方式的特点:
要求在程序运行前一次性地将整个程序装入内存, 但作业在内存中可以不连续
缺点:提高硬件成本,紧凑时花费CPU 时间。
❖内存保护
➢界限寄存器
上下界寄存器
基址、限长寄存器
➢保护键
为每个分区分配一个单独的保护键,为每 个进程分配一个相应的保护键,两者匹配 时可访问
➢分区式存储管理的优缺点
优点: 便于动态申请内存
缺点:碎片问题(外碎片),内存利用率不 高,受实际内存容量限制
静态重定位
动态重定位
静态重定位
当用户程序被装入内存时,一次性实现逻辑地 址到物理地址的转换,以后不再转换(一般在 装入内存时由软件完成),直到该程序完成退 出内存为止。
例:在用户程序的1000号单元处有一条指令LOAD 1,2500,
该指令的功能是将2500单元中的整数365取至寄存器1中。
2)请求表 3)空块管理——位示图 4)内存的分配与回收
0 0 0/1 0/1 0/1 1
31 位号
0/1 0/1
…… ……
7
字号 空闲块数
空块管理——位示图
➢内存的分配与回收
计算一个作业所需要的总块数N
查位示图,看看是否还有N个空闲块
如果有足够的空闲块,则页表长度设为N, 可填入PCB中;申请页表区,把页表始址 填入PCB
OS
多 ... 3k 4k 1k 2k
4k
队 列
...
5k 6k
6k
法 ... 7k 10k 11k 8k
12k
OS

4k

列 ... 7k 3k 4k 5k
6k

12k
优缺点
优点:简单易行,特别是对作业大小已 知的专用系统,这种方法较为实用。
缺点:内存利用率低,产生碎片。
作业长度:5K、8K、12K
▪ 分区法 ▪ 页式 ▪ 段式 ▪段页式存储管理
▪程序员编写程序→内存中程序 ▪逻辑地址(从0开始)→物理地址
功能
常用 方法
分配
地址 转换
保护
虚拟内存用硬盘空间模拟内 存
存储器分配 地址的转换 信息的保护
多个进程共享存储器,分配、释 放存储器
进程需要的存储空间是变化的 调进或调出进程 移动进程
防止一个进程的 存储空间被其它的 进程破坏
存储管理是操作系统的重要组成部 分,它负责管理计算机系统的重要资 源主存储器。由于任何程序、数据必 须占用主存空间后才能执行,因此存 储管理直接影响系统的性能。
第四章 存储管理
1
基本概念
2
连续分配方式
3
分页存储管理方式
4
分段存储管理方式
5
段页式存储管理方式
4.1 基本概念
一、重定位
1、逻辑地址
为了使用户不过问存储分配,通常采用相 对于某个基准量(通常用0)的相对地址编程。 相对地址常用于程序编写和编译过程中。
OS
OS
4k 3K
外部碎片
4k
6k
12k
内部碎片
12k
一、可变分区分配
方法:系统不预先建立分区,分区的建立是在作 业处理时进行,这样做的目的是使分区的大小 正好满足用户作业的需要,分区的大小及个数 都是不固定的。
说明:
➢ 内存分配:动态分配
➢ 内存回收:当某一块归还后,前后空间合并, 修改内存空闲块表
首次适应法: c,a
a
b
c
d
e源自文库
f
3k 3k 2.5k 8k 20k 5k
下次适应法: c,d
a
b
c
d
e
f
7k 3k 2.5k 4k 20k 5k
最佳适应算法: 首先从小到大排序
b
f
a
d
c
e
3k 5k 7k 8k 10k 20k
b
f
a
d
c
e
3k 5k 7k 0.5k 10k 20k
再排序从小到大
d
1. 分区分配中的数据结构
分区分配表 空闲分区链
2. 分区分配操作
分配内存
3.分配算法 按空闲块链接的方式不同,可以有以
下四种算法:
首次适应法
下次适应法(循环首次适应法)
最佳适应法
最坏适应法
1)首次适应法:
空闲区排列:地址递增的顺序
查找:从头查找,直至找到可以容纳该作业 的空白块,从中划分作业所需大小空间, 剩下的仍保留在链表中。否则,分配失败。
❖引入 ❖前面学过的几种存储管理方式,有一
个共同的特点:程序集中地分配到一 块地址连续的存储空间中,形成了所 谓“存储器零头”问题。
❖为解决这一问题,引入页式管理方式。
一、页式管理
1.
将一个进程的逻辑地址空间分成若干个大小相等 的片,称为页面或页,并为各页加以编号。
把内存空间分成与页面相同大小的若干个存储块, 称为(物理)块或页框(frame),也进行编号。
图 页表的作用
❖地址变换
N
执行 指令 或取 数据 时至 少需 访问 内存 两次
(页数)
Y
页表始址+页号×页表项长度
图 分页系统的地址变换机构
❖例如指令 LOAD 1,2500 地址变换过程如下:
若页表全部放在主存,则要取一个数 据(一条指令)至少要访问二次主存,第一 次是访问页表,确定所取数据(或指令)的 物理地址,第二次是根据该地址取数(或 指令)。
(1) 分配策略(计算) 放置策略 ––– 决定放的位置 调入策略 ––– 装入时机(什么时刻调入) 淘汰策略 (2) 数据结构:队、表
2、 地址映射:映射逻辑地址为存储地址
3、扩充逻辑存区-主存扩充(这里指的扩充 并非指硬件设备上的扩充,而是用存储管 理软件来实现逻辑上的扩充-即所谓的虚 拟存贮技术)
逻辑地址空间
物理地址空间
0
BA=1000
Load A data1
100 Load A 200
Load A 1200
编译连接
地址映射
data1 3456
200
3456
1200
3456 。 。
图 逻辑地址空间与物理地址空间
5 、重定位
把逻辑地址空间中使用的逻辑地址变 换成内存空间中的物理地址的过程。
按地址变换时间和所采用技术的不同 可分为:
2、逻辑空间:一个程序的相对地址的集合 组成了该程序的逻辑空间。
3、物理地址:为区分存储器中不同的存储 单元,需对其进行统一编号, 这些编号称 为物理地址。
物理地址是主存的真实地址 ––– 绝对地址
4、物理地址空间:指主存中物理单元的集 合,是程序真正运行的空间,其大小取决 于主存的实际容量。
源程序
在为进程分配内存时,将进程中的若干个页分别 装入到多个可以不相邻的物理块中。
➢ 页式存储管理是离散分配方式
➢页面大小
页面的大小一般是2的幂。
页面大小一般为512B~8KB,太大则页内 碎片大,太小则页表太长,占较大内存
2. 逻辑地址结构
分页地址结构如下:
31
12 11
0
页号P
位移量W
页面大小=2 12 作业的最大逻辑页数:2 20 P=逻辑地址/页面大小 (整除) W=逻辑地址 MOD 页面大小
b
f
0.5k 3k 5k
a
c
e
7k 10k 20k
分配块为d, f
内存回收
① 回收区与插入点的前一个空闲分区F1相邻接
10K
260K
20K
40K
30K
30K
② 回收区与插入点的后一个空闲分区F2相邻接
10K
260K
50K
40K
180K
80K
③ 回收区与插入点的前后两个空闲分区F1、F2相邻接
10K
❖注意:内存分配通常是指对于用户区这一 部分内存空间的分配。
一、单一连续分配
方法:把内存空间分成两个连续的区域,
一个为系统区,供OS使用;另一个为用户区,
供用户程序运行。
0
a 操作系统
缺点:内存利用率很低 a+1
➢适用于单用户单任务系统中
n
用户程序
内存空间安排
二、固定分区分配
方法:在这种方式中,内存的用户区被划分 为若干个固定大小的区域,在每个分区中只 装入一个作业,这样,在内存中就可以存放 多个用户的作业,因而也就允许有多道作业 在系统中同时运行。
相关文档
最新文档