remark: 这是我准备考研期间看学堂在线清华大学的OS MOOC的笔记,由于博主不是科班出身,所写错误可能很大,望大家指正.
本文结构如下:
- 计算机内存管理概述
- 连续内存分配
- 碎片整理
- e.g: 伙伴系统(Buddy System)
计算机内存管理概述
首先我们知道计算机的内存是分很多层次的,不同层次之间访存速度相差很大,(甚至达到几个数量级)
Where exactly L1, L2 and L3 Caches located in computer?
上面是关于MMU和L1,L2 Cache 的介绍,先留坑,有兴趣可以看看
内存管理方式
- 重定位 (relocation)
- 分段(Segmentation)
- 分页(paging)
- 段页式
分段分页和段页是都会在非连续内存分配中介绍,重定位先留坑待补
地址空间
物理地址空间 就是真实的计算机内存(e.g.: 4G ,0-4G-1)
逻辑地址空间 CPU看运行进程看到的地址,也称虚拟地址
地址生成
将指令与数据绑定到内存地址有如下几种情况:
* 编译时 编译时写死,生成绝对地址代码
* 加载时 编译时生成可重定位代码,加载时进行地址绑定
* 执行时 执行时进行地址绑定,这种方式更加灵活,执行时可以从一个内存段移到另一个内存段