我来问道无余说
云在青天水在瓶
概念
基本知识
- 内存管理的功能
- 内存空间的分配与回收
- 地址转换(逻辑<——>物理)
- 内存空间扩充
- 存储保护
- 程序执行过程
- 编译(将用户源代码编译成若干目标模块)
- 链接(将编译好的目标模块以及所需库函数链接到一起,形成装入模块)
- 静态链接(运行前链接好,不再拆开)
- 装入时动态链接(便装入内存时,边链接)
- 运行时动态链接(使用到时,才链接)
- 装入(装入内存运行)
- 绝对装入(适用于单道程序设计,编译时使用绝对地址)
- 可重定位装入(地址变换在装入时一次完成,作业装入内存时,必须分配给其要求的全部空间,一旦进入内存,运行期间则不能移动)
- 动态运行时装入(程序在内存中可以发生移动,真正要执行时,才进行地址转换,可将程序分配到不连续存储区中)
- 内存保护
- 上下限寄存器(判断是否越界)
- 重定位寄存器(基址寄存器)和界地址寄存器(限长寄存器)
重定位寄存器 + 逻辑地址 = 物理地址 < 界地址寄存器
- 扩充内存
- 覆盖
内存划分为一个固定区和若干覆盖区,程序的活跃部分放在固定区,其他段放在覆盖区,剩余段放在外存,要用到时,放入覆盖区 - 交换
将阻塞态程序移到辅存,把就绪态程序换入内存
- 覆盖
内存分配
- 连续分配管理方式
- 单一连续分配(内部碎片)
- 固定分区分配(内部碎片)
- 分区大小相等
- 分区大小不等
- 动态分区分配
- 首次适应(地址递增)
- 最佳适应(容量递增)
- 最坏适应(容量递减)
- 邻近适应(循环首次适应)
- 非连续分配管理方式
- 基本分页存储管理方式
- 基本分段存储管理方式
- 段页式管理方式
- 特征
- 一次性(作业必须一次性全部装入内存才能运行)
- 驻留性(作业装入内存后一直驻留在内存中)
虚拟内存
- 特征
- 多次性
- 虚拟性
- 对换性
- 实现方式
- 请求分页存储管理
- 请求分段存储管理
- 请求段页式存储管理
- 硬件支持
- 一定容量的内存和外存
- 页表(段表)机构
- 中断机构
- 地址变换机构
- 请求分页存储管理
- 页面置换算法
- 最佳置换算法(OPT)
淘汰最长时间内不使用的 - 先进先出(FIFO)
会产生Belady异常,即增大物理块,反而缺页频率上升 - 最近最久未使用(LRU)
- 时钟置换(CLOCK)
最近未用(NRU)
- 最佳置换算法(OPT)
- 页面分配策略
- 固定分配局部置换
- 可变分配全局置换
- 可变分配局部置换
- 调入页面时机
- 预调页策略
- 请求调页策略
注意
- 页式管理中地址空间是一维的
- 顶级页表最多只能有一页
- 一个进程中,段表只能有一个,页表可能有多个