存储器管理
约 1346 字大约 4 分钟
2025-02-11
1 存储器管理的基本概念
- 主存的分配:以块(页)或段为单位,主存的访问 以字或字节为单位
- 目标程序:编译后的结果,由机器指令组成,地址是虚拟地址
- 在作业装入或执行时:将逻辑地址变为物理地址(地址重定向)
- 静态重定位:固定分区存储管理方式 作业装入后位置不再改变
- 动态重定位:动态运行装入方式 程序在主存中改变了位置仍然可以执行
- 交换与覆盖:提高内存利用率 交换在多个进程或作业之间执行,覆盖在同一个进程或作业之间执行,交换牺牲CPU的运行速度
- 主存:可以被CPU直接访问,辅存 不行
- 存储管理:是对主存的用户区进行管理
- 存储管理主存空间分配表:记录主存空间分配情况
- 存储保护:通过硬件和软件实现
- 动态重定位:使得作业在内存中可以移动
2 连续分配方式
- 分区、分页、分段、段页式
分区 | 分页 | 分段 | 段页式 |
---|---|---|---|
连续分配 | 离散分配 | 离散分配 | 离散分配 |
没有外部碎片(固定分区) | 没有外部碎片 | 有外部碎片 | 没有外部碎片 |
- 可变分区
- 上、下限地址寄存器实现存储保护,地址连续
- 地址转换(绝对地址=基址寄存器值+逻辑地址)
- 分区说明表+空闲分区表 实现主存空间的管理,分配作业的主存空间
- 需要一对基址、限长寄存器;限长寄存器作为存储保护使用
- 首次适应算法:地址从小到大顺序
- 最佳适应算法:大小递增顺序,容易产生难以利用
- 最坏适应算法:大小递减顺序
3 基本分页存储管理方式
- 页表长度:用作存储保护
- 分页存储管理方式中所有地址都是一致的,提供一维地址结构;分段存储管理方式中每个段都是自己的地址,看作是二维地址结构
- 分页比段页式的碎片更少,内存利用率更高
- 分页存储:每个进程拥有一张页表,所有进程的页表都驻留在内存中
- 页表寄存器(PTR)存放页表在内存中的起始地址和页表长度,进程未执行时,其实地址和页表长度放在PCB中,只有在调用的时候才会放到页表寄存器里
- 逻辑地址:页号和页内地址两部分组成
- 物理地址 = 块号 * 页大小;物理地址 = 块号 * 块长 + 页内地址
- 位示图法:分页式存储中主存空闲块的管理
- 外层页表:指向页表的页表、为离散分配的页表再建立一个页表
- 逻辑地址有效位:所有页的大小,比如是2^13的大小,则逻辑地址有效位就是13位
- 物理地址有效位:假设每页大小是210,物理存储区一共有32(25)页(块),则有效位是10+5=15位
- 页表中包含逻辑地址中的页号 和 主存中的 块号 的对应关系
- 基本分页访问两次主存,第1次是查页表按页号读出的块号,第2次是按计算出来的物理地址读写
- 基本分页一个作业必须全部装入内存才可以运行
- 快表:特殊的相联存储器,不属于内存,存储速度比内存快
4 基本分段和段页式存储管理方式
- 段页式存储:用分段的方法管理和分配用户地址空间,用分页的方法管理物理存储空间
- 段页式存储地址映象表:每个进程或作业若干段,共有 一张段表,每个段对应一个段表项,每个段表项对应一张页表
- 分段存储:有硬件地址转换机构,每个段表项至少包含段长和该段的起始地址
5 虚拟存储管理
- 在虚拟存储系统中,完成地址转换工作的是:硬件,不是地址转换程序
- 虚拟内存特征:多次性、对换性、离散性、虚拟性
- 虚拟内存基础:局部性理论,包括 程序执行的局部性、存储空间访问的局部性
- 虚拟存储器:最大容量由计算机地址结构确定
- 请求分页、请求分段、请求段页式都属于虚拟存储器采用的技术
- 无论采用什么页面置换算法,每种页面第一次访问时不可能在内存中,必然发生缺页
- LRU:近期最长时间以来没有被访问的页先淘汰
- 最佳置换算法:向后看的思想
- 先进先出算法:可能会出现Belay现象
- 修改位:检查页面是否被修改,如果修改了则回写外存