第三章 内存管理
一、内存管理概念
1.基本概念
2.覆盖与交换
覆盖技术:
交换技术:
总结:
3.连续分配管理方式
单一连续分配
固定分区分配
动态分区分配
动态分区分配算法:
总结:
4.基本分页存储管理
定义:
页表:
地址转换的实现:
子问题:
逻辑地址结构:
总结:
5.基本地址变换机构
流程:
原理:
例子:
总结:
6.具有快表的地址变换机构
快表,又称联想寄存器(TLB, translation lookaside buffer ),是一种访问速度比内存快很多的高速缓存(TLB不是内存!),用来存放最近访问的页表项的副本,可以加速地址变换的速度。与此对应,内存中的页表常称为慢表。
流程:
原理:
局部性原理:
总结:
7.两级页表
8.基本分段存储管理方式
分段:
进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从0开始编址 。
内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间可以不相邻。
段表:
地址变换:
对比:
总结:
9.段页式管理方式
分别的优缺点:
逻辑地址结构:
总结:
二、虚拟内存管理
1.基本概念
2.请求分页管理方式
请求分页存储管理与基本分页存储管理的主要区别:
- 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
- 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存
机制:
缺页中断机构:
缺页中断是因为当前执行的指令想要访问的目标页面未调入内存而产生的,因此属于内中断 。
一条指令在执行期间,可能产生多次缺页中断。(如:copy A to B,即将逻辑地址A中的数据复制到逻辑地址B,而A、B属于不同的页面,则有可能产生两次中断)
地址变换机构:
3.页面置换算法
请求分页存储管理与基本分页存储管理的主要区别:
- 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。
- 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
此时使用页面置换算法决定应该换出哪个页面
最佳置换算法可以保证最低的缺页率,但实际上,只有在进程执行的过程中才能知道接下来会访问到的是哪个页面。操作系统无法提前预判页面访问序列。因此,最佳置换算法是无法实现的。
总结:
4.页面分配策略
页面分配:
抖动(颠簸)现象:
工作集:
总结:
5.内存映射文件
传统的:
内存映射文件:
总结:
主要参考:王道考研课程
后续会持续更新考研408部分的学习笔记,欢迎关注。
github仓库(含所有相关源码):408数据结构笔记