第四章 存储管理要点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.内存分配 (1) 常用的内存分配算法
a) 最先适应算法
第四章 存储管理
● 空闲块按其首址递增的顺序登记在各空闲区表中 ● 找到第一个满足要求的空闲区即实施分配 ● 并在空闲区表中删除此项登记 ● 将分区中多出的空间作为新的空闲区记录在空闲区表中
b) 最佳适应算法
第四章 存储管理
● 空闲区按其大小递增顺序登记在空闲区表中
教材P97,图4.5
2.分区的分配
在固定分区表中找到一个大小合适的分区实施分配,并将相 应表项的状态位置“1”
3.分区的回收
在固定分区表中将释放分区对应表项的状态位清“0”
4.2.3 可变分区管理
第四章 存储管理
各分区是根据作业占用的内存大小动态建立的. 是一种动态分区方式。
1. 空闲区表
记载内存空闲分区(包括首址,长度)
5.分区的共享
▪ 如果每个进程只能占用一个分区,则不允许各道 进程有公共的共享区域,当有多道程序要使用同 一程序时必须在各自存储区都存放一个副本,降 低了内存利用率
▪ 可提供多对基址/限长寄存器,允许一个进程占用 多个分区
▪ 系统规定某对基址/限长寄存器限定区域为共享的, 共享区只能执行/读出,不能写入
c.程序在运行时将所涉及的指令或数据的地址送虚址reg(VR)
d.(BR)+(VR)-->(PR).
4.1.3 存储保护
第四章 存储管理
限制进程只在自己的存储区活动,除了允许共享的部分外, 不能对其他进程的程序和数据产生干扰和破坏。
1.防止地址越界
(1)上、下界存储保护
(2)基址——限长存储保护
2.存取权限控制
(4)释放区与前面空闲区都不相邻, 则在空闲区表中插入该项
4.地址转换与存储保护
第四章 存储管理
采用动态重定位的方式,在进程执行时,由硬件将逻辑地址转 换成物理地址。
操作系统将进程分配得到的起始地址和内存长度分别装入基址 寄存器和限长寄存器,并在进程执行时根据两个寄存器的值, 得到绝对地址,完成地址转换。
6.移动技术
▪ 可变分区中由于每次分配的空闲区大小不一定与 作业正好相等,因此会产生内存碎片,虽总和大, 但不连续而无法利用
▪ 可用移动技术解决内存碎片,即朝一个方向移动 已分配的作业,让小的空闲区在另一方向连成一 片
▪ 分区移动要求能对作业重定位,系统开销较大 ▪ 例:P102图4.11
7.覆盖与交换
4.2.1 单一连续分配法
一段时间内,只有一个进程在内存的用户区
4.2.2 固定分区管理
由操作系统把内存划分成若干个大小固定的存储区, 分区大小各不相同, 除操作系统占用一个区域外, 其余区域为系统中多个用户共享.
程序和数据一旦装入分区后就不可再移动,因此也称为静 态地址重定位。
1.固定分区表
第四章 存储管理
● 找到第一个满足要求的空闲区实施分配
c) 最差适应算法
●空闲区按其大小递减顺序登记在空闲区表中 ● 搜索表中首项, 若满足则分配;否则分配失败
三种常用算法的优缺点
第四章 存储管理
(1) 最先适应算法
优点
● 总是将内存低端空闲区实施分配,高端空闲区保存下来, 随时间推移,内存高端会有大的空闲区
● 分配完后,空闲区表不需排序
4.1.4 存储扩充
第四章 存储管理
通过虚拟存储器实现逻辑上的扩充。
虚拟存储器的概念
由系统构造一个存储容量远远超过内存实际容量的 存储器,这种面向编程的存储器称为虚拟存储器, 简称为虚存。 可实现在有限内存容量的情况下,执行比内存容量 大得多的程序。
4.2 分区存储管理
第四章 存储管理
将内存划分为若干个连续的区域,称为 分区。
第 4 章 存储器管理
4.1 存储管理的功能 4.2 分区存储管理 4.3 页式存储管理 4.4 段式存储管理 4.5 虚拟存储技术 4.6 Linux内存管理
第四章 存储管理
4.1 存储管理的功能
主存储器(内存)
处理器可直接访问 访问快、容量有限
辅助存储器(外存)
处理器不可直接访问 访问慢、容量大
▪ 可能存在当前内存大小无法满足作业/进程的要求 ▪ 覆盖:让一个作业的几个代码段/数据段按时间先
后顺序占用公共内存空间,以满足在较小的可用 内存中运行较大的程序(程序必要部分常驻内存, 其它部分在其它模块实现,存放在外存,需要时 装入)例:p103图4.12 ▪ 交换:多进程并发时,暂不执行程序(阻塞/低优 先级)送到外存,从外存读入就绪进程/装入新程 序
将逻辑地址转换为物理地址
第四章 存储管理
1. 逻辑地址与物理地址的概念
(1) 逻辑地址
用户编程时总是从0开始编址,用 这种编址方法所涉及的指令或数据的 地址称为逻辑地址.
(2)物理地址 内存单元的一维线性地址.
2. 地址重定位方法
第四章 存储管理
CPU执行指令时是按物理地址进行的,而程序的 逻辑地址与之不一致,因此需要地址重定位。
(3)最差适应算法
第四章 存储管理
优点
● 搜索速度快
● 总是将所有能满足要求空闲区中最大者实施分配, 剩余部分还可实施再分配
缺点
● 总是将大的空闲区破坏掉 ● 分配完后,空闲区表可能需排序
3.可变分区的回收
第四章 存储管理
(1)释放区与前面空闲区相邻,则合并 (2)释放区与后面空闲区相邻,则合并 (3)释放区与前后空闲区相邻,则合并
(1)静态地址重定位
程序装入时,由装入程序将逻辑地址转换为物理地址. 实施: 物理地址=程序在内存首址+逻辑地址
(2)动态地址重定位
第四章 存储管理
程序在运行时将所涉及的指令或数据的地址转换为 物理地址.
实施:
a.系统设置: 基址reg(BR);虚址reg(VR);物理地址reg(PR)
b.程序装入时,将其首址送基址reg(BR)
操作系统的存储管理主 要是对内存的管理
内存空间一般分为系统区和用 户区,分别存放操作系统和用 户的程序与数据。 存储管理主要是对用户区进行 管理。
4.1.1 内存分配与回收(存储管理的首要功能)
(1)记录内存空间的使用情况(内存分配登记表) (2)实施内存的分配 (3)内存的回收
4.1.2 地址转换
缺点
● 导致内存低端有很多内存碎片
● 若内存存在一个与申请大小相同的空闲区时, 不一定会被选中
wenku.baidu.com
(2)最佳适应算法
第四章 存储管理
优点
● 总是将所有能满足要求空闲区中最小者实施分配, 大的空闲区保存下来
● 若内存存在一个与申请大小相同的空闲区时, 一定会被选中。
缺点
● 随时间推移会形成很多内存碎片
● 分配完后,空闲区表可能需排序