# 第五章：虚拟存储器
## 常规存储管理方式的特征
### 一次性
### 驻留性
## 局部性原理
### 程序在执行时将呈现出局部性特征，即在一较短的时间内，程序的执行仅局限于某个部分，相应地，它所访问的存储空间也局限于某个区域
### 时间局限性
* 如果程序中的某条指令一旦执行， 则不久以后该指令可能再次执行；如果某数据被访问过， 则不久以后该数据可能再次被访问。产生时间局限性的典型原因，是由于在程序中存在着大量的循环操作
### 空间局限性
* 一旦程序访问了某个存储单元，在不久之后，其附近的存储单元也将被访问，即程序在一段时间内所访问的地址，可能集中在一定的范围之内，其典型情况便是程序的顺序执行。
## 定义
### 指具有请求调入功能和置换功能，能从逻辑上对内存容量加以扩充的一种存储器系统
## 优点
### 大程序：可在较小的可用内存中执行较大的用户程序；
### 大的用户空间：提供给用户可用的虚拟内存空间通常大于物理内存(real memory)
### 并发：可在内存中容纳更多程序并发执行；
### 易于开发：不必影响编程时的程序结构
### 以CPU时间和外存空间换取昂贵内存空间，这是操作系统中的资源转换技术
## 特征
### 离散性
* 指在内存分配时采用离散的分配方式，它是虚拟存储器的实现的基础
### 多次性
* 指一个作业被分成多次调入内存运行，即在作业运行时没有必要将其全部装入，只须将当前要运行的那部分程序和数据装入内存即可。多次性是虚拟存储器最重要的特征
### 对换性
* 指允许在作业的运行过程中在内存和外存的对换区之间换进、换出。
### 虚拟性
* 指能够从逻辑上扩充内存容量，使用户所看到的内存容量远大于实际内存容量。
## 虚拟存储器的实现方式
### 请求分页存储管理方式
* 硬件
    * 请求页表机制
        * 格式：页号+物理块号+状态位P+访问字段A+修改位M+外存地址
    * 缺页中断机构
    * 地址变换机构（过程图很关键）
* 请求分页中的内存分配
    * 最小物理块数
        * 即能保证进程正常运行所需的最小物理块数
    * 内存分配策略
        * 固定分配局部置换（国王的大儿子）
        * 可变分配全局置换（国王的二儿子）
        * 可变分配局部置换（国王的小儿子）
* 物理块分配算法
    * 平均分配算法
    * 按比例分配算法
    * 考虑优先权的分配算法
* 页面调入策略
    * 系统应在何时调入所需页面
        * 预调页策略（不能实现）
        * 请求调页策略（需要才给）
    * 系统应该从何处调入这些页面
        * 对换区
        * 文件区
    * 页面调入过程
    * 缺页率（出计算题）
### 请求分段系统
* 硬件
    * 请求分段的段表机构
    * 缺段中断机构
    * 地址变换机构
## 页面置换算法
### 抖动的概念
* 即刚被换出的页很快又要被访问，需要将它重新调入，此时又需要再选一页调出
### 最佳置换算法(需要预知后面进程，所以不能实现)
### 先进先出页面置换算法（FIFO）
* 选择在内存中驻留时间最久的页面予以淘汰
### 最近最久未使用置换算法（LRU）Recently
* 寄存器支持
* 特殊的栈结构
### 最少使用置换算法（LFU）Frequently
### clock置换算法（对访问位A的判断）
* 改进型——增加对修改位M思维判断
### 页面缓冲算法（PBA,page buffering algorithm）
* 空闲页面链表
* 修改页面链表

*XMind: ZEN - Trial Version*