操作系统基础第四讲
操作系统第四讲 存储器管理
第一讲:内存管理概述
1. 内存管理的基本概念
-
逻辑地址及物理地址

-
外部碎片
内存中划分给进程剩下太小的无法分配的空间

-
内部碎片
进程进入分配的块,剩下的

2. 内存管理的基本功能


3. 程序的链接与装入
-
程序的运行过程


-
绝对装入

将程序装入装入到指定位置
仅适用单道程序
-
可重定位装入

多道程序中不能预知应放到内存何处,因此采取可重定位装入模式,放到内存中任何允许位置,根据内存情况将目标模块存放;需要根据相对地址更改绝对地址
目标模块起始地址一般从0开始
-
动态运行时装入方式
装入后还能移动位置;把绝对地址转换推迟到程序真正执行的时候
4. 程序的链接
-
静态链接

程序运行前就链接好
-
装入时动态链接


-
运行时动态链接

考点二:内存连续分配管理方式
1. 单一连续分配

2. 固定分区分配


3. 动态分区分配


4.动态分区分配算法


-
首次适应算法FF First Fit
每次从链头开始,直到找到第一个适合的空闲分区

-
循环首次适应NF Next Fit
每次从上一次结束地方再寻找


-
最佳适应BF Best Fit
优先使用满足要求又是满足要求分区中最小的适合分区
即使用内部碎片最小的分区


-
最坏适应WF Worst Fit
优先使用最大的分区


-
对比


5. 内存回收

考点三:基本分页存储管理方式
1. 基本概念
-
页面和(物理块/页框)

进程分成:页
内存分成:物理块/页框
萝卜和坑的关系
最后一页可能放不满页框,造成页内碎片
-
页面大小

页框大小与完整页面大小一致
-
页表
用于记录进程每一页再内存中对应的物理块号(即页框)
存储对应关系


-
页表项
页表的基本单元,一条对应关系
由页号和页框号组成
2. 地址结构
-
结构图

-
页号和页内地址计算

-
页面大小



3. 地址变换机构
页表对应关系的实现方式



要访问某个逻辑地址中的数据
- 将有效地址(相对地址)分为页号和页内地址
- 检索前先判断越界,将页号和页表长度比较
- 用页号检索页表,找到物理块对应关系
- 计算该表项在页表中位置,将页表项开始地址与页号和页表项长度的乘积相加
- 得到物理块号,装入物理地址寄存器
- 将有效地址寄存器中页内地址送入地址寄存器的块内地址字段
- 完成逻辑地址到物理地址的变换

4. 快表TLB(Translation Looksaide Buffer)
相当于一个页表缓存,先查快表如果页号存在直接使用缓存的物理块地址,免去一次查找整个页表时间


5. TLB的实现方式(使用Cache来实现)
-
直接相联映射


-
全相联映射

-
组相联映射

6. 两级页表和多级页表
页表太长需要将页表进行分页,需要建立一张表用于记录页表项对应的物理块地址。



考点四:基本分段内存管理方式
1. 分段系统的基本原理






