虚拟存储管理

简介: 虚拟存储管理

虚拟存储管理

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

基于局部性原理

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

graph LR

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

  1. 状态位:用于标记该页是否调入内存
  2. 访问字段:用于记录该页多久没被访问。置换算法需要访问该字段
  3. 修改位:表示该页调入内存后是否修改过
  4. 外村地址:指出该页在外存的地址
  1. 缺页中断机制
  1. 地址变换时,首先检查给定的页号是否大于页表寄存器的页表长度,若是,则越界中断
  2. 根据页号同时查找页表、快表。
  • 若在快表中找到,则修改访问字段。对于写操作,还要将修改位置为1
  • 若快表找不到,则在页表找。页表查到后,检查状态位,
  • 如果该页在内存,将该页项写入快表
  • 如果快表已满,则使用置换算法换出最后一页再将该页写入
  • 如果该页不在内存,产生缺页中断。由中断处理程序将需要的页调入内存
  • 如果内存已满,则使用置换算法换出最后一页再将该页写入内存
  1. 请求页式管理的页面置换算法
  1. 最佳置换算法(OPT)
  • 理论上的算法
  1. 先进先出算法(FIFO)
  • 淘汰最先进入内存的页
  1. 最近最久未使用置换算法
  • 根据页面调入内存的使用情况作为置换的条件 image.png
目录
相关文章
|
安全 Cloud Native Java
龙蜥白皮书精选:机密计算平台技术
龙蜥社区为推动机密计算技术的应用,提供若干机密计算创新项目,目的是降低机密计算技术的使用门槛。
|
开发工具 git
SourceTree配置BeyondCompare代码冲突解决工具
SourceTree配置BeyondCompare代码冲突解决工具
1186 0
|
6月前
|
监控 Linux 网络虚拟化
从入门到精通:系统性学习Linux虚拟网络设备的全面指南
学习一个从未接触过的Linux虚拟网络设备是一个分阶段的过程,从最初的认识到最后的精通,需要系统性和逐步深入的学习策略。以下是一个全面的指南📚,旨在帮助初学者通过多角度分析🔍,一步一步地学习和掌握新的Linux虚拟网络设备。
从入门到精通:系统性学习Linux虚拟网络设备的全面指南
|
关系型数据库 MySQL Java
C++实战-基于c++11新特性的mysql连接池
C++实战-基于c++11新特性的mysql连接池
81 0
|
SQL cobar 关系型数据库
02MyCat - Cobar与MyCat
02MyCat - Cobar与MyCat
143 0
UE5ControlRig脚部IK匹配地面(FootIK)的简易实现
UE5ControlRig脚部IK匹配地面(FootIK)的简易实现
173 0
UE5ControlRig脚部IK匹配地面(FootIK)的简易实现
|
机器学习/深度学习 传感器 人工智能
【故障定位】基于粒子群优化算法的IEEE33节点故障定位附Matlab代码
【故障定位】基于粒子群优化算法的IEEE33节点故障定位附Matlab代码
|
安全 API 数据处理
如何提升IT对业务发展的贡献度
希望置身业务驱动型环境的 IT 团队们,能够八仙过海各显神通,提升 IT 团队对业务发展的贡献,获得稳定的立足之地,然后才能逐渐施展拳脚。
377 0
如何提升IT对业务发展的贡献度
|
SQL 编解码 关系型数据库
Apache Doris ODBC mysql外表注意事项
这里要说的是在使用Mysql的ODBC外表的时候要注意事项。
420 0
Apache Doris ODBC mysql外表注意事项
|
Java 数据库连接 Android开发
eclipse安装插件【例如eclipse安装MyBatipse】的方式
eclipse安装插件【例如eclipse安装MyBatipse】的方式
732 0
eclipse安装插件【例如eclipse安装MyBatipse】的方式