内存分配的过程:
单一连续分配是最简单的内存分配方式
分为系统区 和 用户区
***固定分区分配***: 支持多道程序的最简单存储分配方式
每个分区只提供给一个程序使用
***动态分区分配***:空闲表 空闲链(节点要记录可存储的容量)
动态分区分配算法:
首次适应算法(FF)
最佳适应算法(BF)把链表按照容量大小排序
节点1 [1] -> 节点4 [1] -> 节点2-3 [2] -> 节点5-6 [2] 避免大材小用的发生
快速适应算法 (QF) 多个空闲区链表
内存回收的过程:回收区的位置
1.在一个空闲区之前 两个合并 新的空闲区使用回收区的地址
2.在一个空闲区之后
3.在两个空闲区的中间 三个合并 使用最上面空闲区的地址
4.一个单独的回收区 直接创建新的空闲节点
页式存储管理:(页面大小通常是512B - 8K)
进程逻辑空间分成若干大小的页面 (假如页面大小1.5,放到节点2-3上之后产生0.5大小的内存碎片)
物理内存空间分成页面大小的逻辑块
以页面为单位把进程空间装进物理内存中分散的物理块
页表: 记录逻辑空间到物理空间的映射
段式存储管理:
进程逻辑空间分为若干段(不等分)
段的长度由连续逻辑的长度决定
主函数main 子程序段X 子函数Y
段页式逻辑管理:
先将逻辑空间按段式分为若干段
再把段内空间按页式管理分为若干页
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。