内存管理
内存的基础知识
什么是内存?有何作用?
存储单元
- 关于存储单元有关内容在我写的组成原理笔记中有提到:[存储单元][Link 7]
几个常用数量单位&内存地址
进程运行的基本原理
指令的工作原理—操作码+若干参数(可能包含地址参数)
- 从X=X+1大致看一下指令的执行过程
逻辑地址&物理地址
从写程序到程序运行—编译、链接、装入
装入模块装入内存
不修改装入模块中的指令地址就直接装入内存的话:
装入的三种方式
绝对装入
静态重定位
动态重定位
链接的三种方式
静态链接
装入时动态链接
运行时动态链接
内存管理的概念
内存空间的分配与回收
内存空间的扩展(实现虚拟性)
地址转换
三种装入方式
内存保护
两种方式
覆盖与交换技术
覆盖技术
交换技术
- 回忆复习一下进程调度
内存的分配与回收
单一连续分配
固定分区分配
分区说明表
动态分区分配(可变分区分配)
记录内存使用的数据结构
动态分配算法
分区的分配和回收操作
如何分配?
如何回收?
内部碎片与外部碎片
动态分区分配算法
首次适应算法
最佳适应算法
最坏(大)适应算法
临近适应算法
四种算法归纳比较
分页存储
为什么学习分页存储?
基本分页存储管理的思想
分页存储管理的重要概念
如何实现地址的转换
如何计算页号和页偏移量
为什么页面大小一般设为2的整数次幂?
分页存储的逻辑结构
如何知道页面在内存中的起始地址?
- 这里引入一个新的概念:
页表
分页存储的地址变换机构
页表寄存器
地址变换过程
一道例题加深印象:
对页表项大小的进一步讨论
快表的地址变换机构
局部性原理引入快表机制
快表(TLB)
引入快表后,地址变换的过程的文字描述:
基本地址变换与快表地址变换的比较
二级页表
为什么引入二级页表?
因为单级页表存在一些问题,所以引入二级页表和多级页表,有两个问题:
上面提到了这两个问题,那么总结一下,并提出解决思想,引入二级页表的概念。
二级页表的原理和地址结构
- 对页表再次分组
- 二级页表的地址结构及对应关系
二级页表的地址变换
上面的部分我们解决了问题一,接下来是问题二,这里简单叙述一下,后面的文章会继续深入剖析。
几个小细节
基本分段存储管理
什么是分段?
分段的逻辑地址结构
段表
地址变换
分段、分页管理的对比
分段实现信息共享共享
分页不方便实现信息共享和保护
段页式存储管理
分页、分段的优缺点分析
段页式管理的概念
段页式管理的逻辑地址结构
段页式存储的段表、页表
段页式管理的地址转换过程
虚拟内存的基本概念
传统存储管理的特征、缺点
局部性原理
虚拟内存的定义和特征
如何实现虚拟内存技术
请求分页管理方式
请求分页的基本概念
页表机制—请求页表与基本页表的区别
缺页中断机构
地址变换机构
页面置换算法
最佳置换算法—OPT
先进先出置换算法—FIFO
最近最久未使用置换算法—LRU
时钟置换算法—CLOCK
改造型时钟置换算法
只需一轮:
需要两轮:
需要三轮:
需要四轮:
页面分配策略
驻留集
页面分配、置换策略
何时调入页面?
从何处调页?
抖动(颠簸)现象
工作集
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Arui!
评论