计算机组成原理/虚拟储存器
假想记忆
传统储存器
- 一次性:全部装入,无法单次运行非常大的程序
- 驻留性:运行时不会被换出内存
虚拟储存器
- 多次性: 只放需要的内容
- 对换性:程序可以运行时换出内存
- 虚拟性 提高了数据吞吐量
实现
分页式虚拟存储器
页表:虚拟地址 -> 物理地址
tag index offset
状态位 访问字段 修改位 外存地址
页表项中各字段的作用如下:
(1)页号和物理块号。其定义同分页存储管理,这两个信息是进行地址变换所必需的。
(2)状态位。用于表示页面是否在内存中。每当进行内存访问时,根据该位判断要访问的页面是否在内存,若不在内存中,则产生缺页中断.
(3)访问字段。用于记录页面在一段时间内被访问的次数,或最近已有多长时间未被访问。该字段供置换算法在选择换出页面时参考。
(4)修改位,用于表示页面调入内存后是否被修改过。当处理机以写方式访问页面时,系统将设置该页面的修改位。由于内存中的页面在外存上都有副本,因此,若页面未修改,则在该页面换出时不需要将页面写到外存,以减少磁盘写的次数;若页面被修改,则必须将页面重新写到外存上.
(5)外存地址。用于指出页面在外存上的存放地址。该字段供调入页面时使用
优点
不占用连续的内存空间
缺点
每页利用率不一致,产生内存碎片
page fault
没找到页
page swap
换入换出
置换算法
- 千里眼:
- 操作系统调查每一页的page,去测算用到page的时间
- NRU
- 参照状态、变更状态
- NFU
- 换出频率最低的页
调页方法
- demand pageing: miss了才写入
- 省内存
- 开始前没有load延迟
- 硬盘负担小
- 在page更新前,该页可被多个程序共用
- 可以执行比内存大的程序
- 开始运行时,必会page fault,产生延迟
- 内存管理复杂化