标签:执行 价格 保存 分配 lazy 符号 分布 code 运行速度
内存管理的目标:
实现内存的分配和回收
合理的分配内存空间,提高内存利用率,提高内存访问速度
速度由快到慢,容量由小到大,价格由高到低
寄存器->L1高速缓存 -> L2高速缓存 -> 主存储器 -> 本地二级存储 -> 远程二级存储(web/ftp)
特点:每个层级的存储器都保存来自下一级存储器的信息
分类:
其中位于CPU内部的是:寄存器->L1高速缓存 -> L2高速缓存
其中统称为内存的是:寄存器->L1高速缓存 -> L2高速缓存 -> 主存储器
其中统称为外存/辅助存储的是:本地二级存储 -> 远程二级存储(web/ftp)
定义:在一段时间内,程序的执行仅限于某个部分,相应的,它所访问的存储空间也局限于某个区域
分类
时间局部性
空间局部性
含义: 程序被编译后会变成一个一个的独立模块(比如用到的各种库),在运行前,需要使用链接程序将目标模块链接成一个完整的装入模块
特点:运行速度相对快,但占用内存更多
链接程序的具体任务
含义:可将目标模块的链接推迟到这这写模块中的函数被调用时才进行;
特点:运行速度相对慢,但是可以节省内存
连接程序完成连接后得到一个装入模块,装入程序负责将这个装入模块装入到内存中
编译时产生物理地址的目标代码
实际地址 = 逻辑地址 + 物理其实地址
任何时刻主存储器最多只有一个作业
固定分区说明表
用于记录分区的使用情况空闲分区表
,用于记录当前可用的分区信息与空闲分区表功能相同的还有另一种叫做空闲分区链
本质是一个双向链表,每个节点包含一个指向前一个和一个指向后一个分区的指针,以及一个保存可用分区起始地址和长度的数据域;
设使用最佳适应算法,流程已经介绍不在啰嗦
例:设找到的分区起始位置为S,长度为L, 进程需要的大小为N
分配完成后,新的起始位置为:S + N, 长度为L - N
重新对分区链按空间大小升序排序
例:
设释放的区域起始地址为A,长度为L
判断否相邻:设已有空闲分区起始位置为X,长度为Y
标签:执行 价格 保存 分配 lazy 符号 分布 code 运行速度
原文地址:https://www.cnblogs.com/yangyuanhu/p/13382915.html