虚拟存储管理

简介: 虚拟存储管理

虚拟存储管理

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

基于局部性原理

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

graph LR

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

  1. 状态位:用于标记该页是否调入内存
  2. 访问字段:用于记录该页多久没被访问。置换算法需要访问该字段
  3. 修改位:表示该页调入内存后是否修改过
  4. 外村地址:指出该页在外存的地址
  1. 缺页中断机制
  1. 地址变换时,首先检查给定的页号是否大于页表寄存器的页表长度,若是,则越界中断
  2. 根据页号同时查找页表、快表。
  • 若在快表中找到,则修改访问字段。对于写操作,还要将修改位置为1
  • 若快表找不到,则在页表找。页表查到后,检查状态位,
  • 如果该页在内存,将该页项写入快表
  • 如果快表已满,则使用置换算法换出最后一页再将该页写入
  • 如果该页不在内存,产生缺页中断。由中断处理程序将需要的页调入内存
  • 如果内存已满,则使用置换算法换出最后一页再将该页写入内存
  1. 请求页式管理的页面置换算法
  1. 最佳置换算法(OPT)
  • 理论上的算法
  1. 先进先出算法(FIFO)
  • 淘汰最先进入内存的页
  1. 最近最久未使用置换算法
  • 根据页面调入内存的使用情况作为置换的条件 image.png
目录
相关文章
|
2月前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
141 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
4月前
|
移动开发 小程序 数据可视化
HBuilderX 小白上手指南
HBuilderX 小白上手指南
163 0
|
9月前
|
监控 Linux 网络虚拟化
从入门到精通:系统性学习Linux虚拟网络设备的全面指南
学习一个从未接触过的Linux虚拟网络设备是一个分阶段的过程,从最初的认识到最后的精通,需要系统性和逐步深入的学习策略。以下是一个全面的指南📚,旨在帮助初学者通过多角度分析🔍,一步一步地学习和掌握新的Linux虚拟网络设备。
从入门到精通:系统性学习Linux虚拟网络设备的全面指南
|
关系型数据库 MySQL Java
C++实战-基于c++11新特性的mysql连接池
C++实战-基于c++11新特性的mysql连接池
109 0
|
小程序 测试技术 定位技术
微信小程序景区的制作思路
微信小程序景区的制作思路
|
弹性计算 负载均衡 对象存储
阿里云服务器申请免费试用图文教程(个人和企业均可申请)
2023年阿里云服务器申请免费试用图文教程(个人和企业均可申请)
673 0
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法——K-Means算法(理论+图解)
【机器学习】聚类算法——K-Means算法(理论+图解)
253 0
【机器学习】聚类算法——K-Means算法(理论+图解)
|
SQL 消息中间件 分布式计算
基于开放共享的自主研发—MaxCompute 持续增强生态与开放性建设
MaxCompute 是阿里巴巴自研的云原生数据仓库,同时也兼容大部分大数据生态系统。一个平台无法实现所有功能和解决所有问题,MaxCompute 需持续增强生态与开放性建设,方能走得更远。
1239 2
基于开放共享的自主研发—MaxCompute 持续增强生态与开放性建设
|
C语言 Perl
西门子S7-200 SMART编程实例,逻辑运算指令如何使用?
本节我们来介绍一下西门子S7-200 SMART逻辑运算指令。
西门子S7-200 SMART编程实例,逻辑运算指令如何使用?
|
Java 数据库连接 Android开发
eclipse安装插件【例如eclipse安装MyBatipse】的方式
eclipse安装插件【例如eclipse安装MyBatipse】的方式
799 0
eclipse安装插件【例如eclipse安装MyBatipse】的方式