Cache
解决CPU与主存之间速度不匹配的问题(Cache是主存的一小部分拷贝副本)
地址映射
直接映射;全相连;组相连
替换策略
先进先出算法(FIFO);最近最久未使用算法(LRU)
内存管理
内存的分配与回收;地址转换;虚拟存储
程序的装入、链接
创建进程将程序和数据装入内存
1.程序处理步骤
- 编译
源程序->若干目标模块
- 链接
目标模块与库函数装入执行文件模块
- 装入
装入内存
2.程序链接
将模块及库函数链接成执行文件
动态链接方式(装入时、运行时)
3.装入
动态运行时装入,推迟到执行时装入内存(相对地址)
连续分配内存管理(字节跳动)
单一连续分配;固定分区分配;动态分区分配
固定分区:将内存划分若干固定大小的分区,每个装入一道用户进程,分区说明表记录区号等
动态分区:根据作业大小建立分区
动态分区分配算法:首次适应、最佳适应、最差适应、临近适应
- 首次适应算法
将空闲分区按地址递增的顺序排列,每次分配内存时,从链表首开始顺序查找第一个满足大小的空闲分区,分配后整理链表。优先利用了低地址空闲部分,但导致每次从低查找开销大。
- 临近算法
按地址递增的顺序排列,从上次查找的部分开始查找
- 最佳适应
将空闲分区按照容量大小递增的顺序排列,每次查找第一个合适的空闲分区
- 最差适应
将空闲容量大小从递减排序,查找第一个,目的是使节点大小均匀,适合分配范围较窄的情况
离散分配内存
分页;分段;段页式·
- 分页
进程分为多页放在逻辑地址空间,页表根据页号找到每页在内存的地址
缺点:CPU访问指令需要两次访问内存,一次页表(在物理内存中)一次物理内存;
- 分段
程序是程序段的集合,每个进程都有一个逻辑地址和主存空间映射的段表,记录在主存中的起始地址和段长度
- 段页式
将程序分成几个段,每个段分若干个页,页内存有页中段号、段内页号、页内偏移