虚拟存储管理

简介: 虚拟存储管理

虚拟存储管理

虚拟存储管理是一种逻辑扩容的方式,

基于局部性原理

  1. 虚拟存储原理:
  • 在进程运行时,没有必要将其全部装入内存,而仅装入当前运行的那部分,当进程访问不在内存的那部分时,才将那部分调入内存。如果内存满了,则将暂时不用的那部分数据调出内存。
  1. 虚拟存储的特征
  • 离散性:进程不连续的装入内存多个不同的区域中。离散性是实现虚拟存储器的基础。
  • 多次性:一个进程多次调入内存
  • 对换性:允许将部分程序和数据换进换出
  • 虚拟性:逻辑上扩充容量
  1. 请求页式存储管理
  • 硬件支持
  • 需要内外存对换区
  • 页表机制
  • 缺页中断机构
  • 地址变换机构

graph LR

页号,存储块号,状态位P,访问字段A,修改位M,外存地址

  1. 状态位:用于标记该页是否调入内存
  2. 访问字段:用于记录该页多久没被访问。置换算法需要访问该字段
  3. 修改位:表示该页调入内存后是否修改过
  4. 外村地址:指出该页在外存的地址
  1. 缺页中断机制
  1. 地址变换时,首先检查给定的页号是否大于页表寄存器的页表长度,若是,则越界中断
  2. 根据页号同时查找页表、快表。
  • 若在快表中找到,则修改访问字段。对于写操作,还要将修改位置为1
  • 若快表找不到,则在页表找。页表查到后,检查状态位,
  • 如果该页在内存,将该页项写入快表
  • 如果快表已满,则使用置换算法换出最后一页再将该页写入
  • 如果该页不在内存,产生缺页中断。由中断处理程序将需要的页调入内存
  • 如果内存已满,则使用置换算法换出最后一页再将该页写入内存
  1. 请求页式管理的页面置换算法
  1. 最佳置换算法(OPT)
  • 理论上的算法
  1. 先进先出算法(FIFO)
  • 淘汰最先进入内存的页
  1. 最近最久未使用置换算法
  • 根据页面调入内存的使用情况作为置换的条件 image.png
目录
相关文章
VScode修改打开默认编码及自动匹配文件编码格式
VScode修改打开默认编码及自动匹配文件编码格式
1609 0
VScode修改打开默认编码及自动匹配文件编码格式
|
10月前
|
设计模式 算法
设计模式行为型
设计模式行为型
14957 4
|
8月前
|
存储 传感器 安全
物联网操作系统介绍
物联网操作系统介绍
113 0
|
11月前
|
存储 算法 Unix
进程与线程
进程与线程
60 0
|
11月前
|
消息中间件 监控 数据可视化
RabbitMQ
RabbitMQ
140 0
|
11月前
|
设计模式 存储 缓存
结构型设计模式
结构型设计模式
132 0
|
11月前
|
设计模式 数据安全/隐私保护 Java
创建型设计模式
创建型设计模式
140 0
|
11月前
|
设计模式 存储 算法
行为型设计模式
行为型设计模式
126 0
|
12月前
|
存储 对象存储
归档存储
归档存储
267 0
|
存储 缓存 运维
[翻译]深入解析Windows操作系统(下)之第十章 内存管理
深入解析Windows操作系统(下)之第十章 内存管理
1216 0
[翻译]深入解析Windows操作系统(下)之第十章 内存管理