虚拟存储器

2023-10-31

虚拟存储器

一.虚拟存储器概述

1.引入原因

  • 高速的主存容量满足不了要求

在这里插入图片描述

虚拟存储器:在操作系统及辅助硬件的管理下,由主存和大容量外存所构成的一个单一的,可直接访问的超大容量的主存储器。

2.虚拟存储器的概念(虚拟存储体系)

主存储器与大容量磁盘存储器构成虚拟存储系统

虚拟存储器工作时,操作系统管理的地址转换硬件检测程序欲访问的虚存地址所在的程序或数据页(或段)是否在主存中,若已在主存中(即命中),则将虚拟地址转换为主存地址,CPU根据主存地址从主存(或Cache-主存)读取程序或读/写数据;若未在主存中(即失效),则将虚存地址转换为外存地址,由操作系统控制把当前要执行的程序或使用的数据从外存调入到快速主存中,大量暂时不用的部分仍放在慢速廉价的外存中。如果主存中没有空闲区域,则选择最近不常用的程序或数据作为替换对象,且将修改的数据送回外存。因为程序和数据在主存与外存的调入,调出由硬件与操作系统共同完成,所以,对于设计存储管理软件的程序员来说是不透明的,对于应用程序员来说是透明的(而Cache的控制完全由硬件实现,对各类程序员都透明)。每个程序员的编程空间均为完整的虚存空间(远远大于主存实际空间),用户程序运行在标准化的虚拟地址空间中,且该存储空间无存储实体,故称“虚拟”存储器。

在这里插入图片描述

二.页式虚拟存储器☀️

页式虚拟存储器采用分页请求系统:它允许用户程序只装入少数页面的程序及数据即可启动运行,以后再通过调页功能及页面置换功能陆续地把即将运行的页面调入内存,同时把暂时不用的页面换出到外存上,置换时以页面为单位。

页式虚拟存储器的硬件支持:

  • 请求分页的页表机制
  • 缺页中断机构
  • 地址变换机构

1.虚页和实页

  • 虚页:在虚拟存储体系中,虚拟地址空间被分成许多固定大小的页,称为虚页或逻辑页。
  • 实页:主存地址空间也被分成若干同样大小的页(与虚页大小相同),称为实页或物理页。

2.虚拟地址和主存地址

  • 虚存地址(逻辑地址或虚拟地址)
虚页号 页内地址
  • 主存地址(物理地址或实地址)
实页号 页内地址

3.地址变换⭐

  • 管理页式虚拟存储器时,要完成虚拟地址到物理地址的变换,该变换是基于全相联地址映射并通过页表来实现的。

  • 在页表中每一条记录都包含虚页号所对应的实页号

  • 页表通常设置在主存中,表的起始地址通过页表基址寄存器来设定

  • 在页式虚拟存储器地址变换中,当程序给出虚拟地址后,CPU以虚页号为偏移地址查页表,从而获得相应的实页号。

  • 实页号与虚拟地址的页内地址连接到一起,便构成了主存的物理地址。

4.关于页表⭐

  • 页表中,记录项数由虚页数决
  • 每一行记录里必须有几个控制位,包括:装入位(有效位),修改位,替换控制位等。
  • 当页表未发现所要访问的页(未命中)时,则需按某种替换或更新算法将要访问的页由外存装入主存。
  • 页表一般是比较大的,例如虚存空间1TB,页的大小为64kb,则页表应为16M字,且每字应为一个记录(包含实页号和控制位)

在这里插入图片描述
5.快表与慢表
为了提高速度,可借鉴Cache的思路,将页表中最活跃的部分放在Cache存储器中,构成快表,对快表的查找及管理全部使用硬件来实现。快表一般很小,它仅是主存中页表(慢表)的一小部分。只有在快表找不到要访问的页面时,才去访问慢表,以达到快的目的。

6.缺页中断机构
在请求分页系统中,每当所要访问的页面不存在时,便产生一缺页中断,请求OS将所缺页面调入内存。
缺页中断与一般中断的不同表现在:

  • 1)在指令执行期间产生和处理中断信号:通常CPU在执行完一条指令后才去检查是否有中断请求到达,然而缺页中断是在指令执行期间,若发现要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,以便能及时将所缺页面调入内存。
  • 2)一条指令在执行期间可能产生多次缺页中断:如下图所示,指令本身跨越两个页面,指令中的操作数又各自跨越了两个页面,所以若从指令起始就开始缺页,则指令执行过程中一共产生6次缺页中断
    在这里插入图片描述

7.页面的调入过程

  • 当程序所要访问的页面未在内存时(存在位为0)便向CPU发出一缺页中断
  • 中断程序首先保存CPU环境,分析中断原因后转入缺页中断处理程序
  • 处理程序通过查找页表得到该页在外存的物理块后,
    • 如果此时内存能容纳新页,则启动磁盘IO将所缺页面调入内存,然后修改页表。
    • 如果此时内存已满,则需先按照某种页面置换算法,从内存中选出一页准备换出
      • 如果该页未被修改过(修改位为0)可不必将该页写回磁盘
      • 如果该页已被修改(修改位为1)则必须将它写回磁盘
      • 然后再把所缺的页面调入内存
    • 修改页表中的相应项,置其存在位为1,并将该页表项写入快表
  • 在缺页调入内存后,利用修改后的页表形成所要访问数据的物理地址,再去访问内存数据

8.页式虚拟存储器的优缺点

优点:

  • (1)主存利用率高。由于页表容量小,每一用户程序最多造成不到一页的浪费。
  • (2)页表的内容比较简单
  • (3)地址映射与地址变换速度比较快

缺点:

  • (1)程序的模块性差。页大小固定,无法与程序模块保持一致
  • (2)页表很长。

例题分析

1.某计算机主存按字节编址,虚拟(逻辑)地址空间大小为256MB,主存(物理)地址空间为16MB,页
面大小为4KB。
虚拟地址共有几位,哪几位表示虚页号?物理地址共有几位,哪几位表示实页号?

分析:

  • 页内大小为4KB,则需要12位页内偏移地址
  • 虚页数=256MB/4KB= 2 16 2^{16} 216页,则需要16位来表示虚页号
  • 实页数=16MB/4KB= 2 12 2^{12} 212页,则需要12位来表示实页号
  • 综上所述:虚拟地址应为:16+12=28位,前16位表示虚页号;物理地址应为:12+12=24位,前12位表示实页号

2.某页式虚拟存储器共256K页,每页4KB。主存容量1MB,按字节编址。试问:主存分多少页?主存页表有多大?描述虚实地址的变换过程。

分析:

  • 主存实页数:1MB/4KB= 2 8 2^8 28页=256页
  • 页表大小:虚页数 × \times ×每条记录大小(字)=256K字

地址变换过程:

  • 1.给出要访问的虚拟地址:虚页号+页内地址
  • 2.以页表基地址为首地址,虚页号为偏移地址,定位出页表中虚页号对应的记录
  • 3.通过该记录获得虚页号对应的实页号
  • 4.将实页号与原页内地址一起构成目标物理地址

三.段式与段页式虚拟存储器

1.段式虚拟存储器

  • 段式虚拟存储器中,将完成某种独立功能的程序模块定义为一段
  • 进行管理时,应为每一段程序规定一个段号,确定每段长度并在主存中建立段表
  • 段表中,每一行由段号,段起始地址,装入位,段长,属性等构成,每一行对应一个段
  • 段式虚拟存储器的地址映射基于全相联地址映射,与页式虚拟存储器类似
  • 地址变换中,以虚拟地址所确定的段号为偏移地址查段表,若发现该段已装入主存,则直接将段表中的段起始地址与虚拟地址中的段内地址相加,得到物理地址。

在这里插入图片描述

优点:(1)很适合模块化程序设计(2)便于程序和数据共享(3)便于信息保护
缺点:(1)各段长度不一,分配地址空间麻烦(2)段与段间空隙较大,降低主存利用率

2.段页式虚拟存储器

  • 段页式虚拟存储器结合了段式与页式虚拟存储器的优点
  • 段页式虚拟存储器将程序首先分段,然后将每段分成大小相同的若干页。
  • 对于段来说,要用段表来管理所有段;每一段也有自己的页表,用于存放本段中每一页对应的实页号(不一定连续)
  • 进行地址变换时,首先根据虚拟地址段号查段表,查出要访问的本段页表的起始地址,由此地址及虚拟地址中的页号再查本段页表,从中查出该页对应的实页号,最后将实页号与虚拟地址的页内地址拼接获得物理地址。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟存储器 的相关文章

  • (计算机组成原理)Cache和主存之间的映射方式

    地址映射变换机构是将CPU送来的主存地址转换为Cache地址 由于贮存和Cache的块大小相同 xff0c 块内地址都是相对于快的起始地址的偏移量 xff08 即低位地址相同 xff09 xff0c 因此地址变换主要是主存块号与Cache块
  • 计算机组成原理--I/O系统

    大学峡谷秀 xff0c 机组未学溜 xff0c 如今涕泪流 xff0c 共勉之 近来学习netty零拷贝 xff0c 复习并笔记之 1 概念 以主机为中心 xff0c 将信息从外部设备读入或输出的操作称为IO xff0c 外部设备包括输入输
  • 总线带宽计算公式_「计算机组成原理」:总线概述

    计算机系统的五大部件之间连接的方式有两种 xff0c 一种是各部件之间使用单独的连线 xff0c 称为分散连接 一种是将各部件连到一组公共信息传输线上 xff0c 称为总线连接 总线的基本概念 计算机系统的五大部件之间连接的方式有两种 xf
  • 计算机组成原理知识点(第七章: 指令系统)

    第七章 指令系统 1 概念 人们习惯把每一条机器语言称为机器指令 而又将全部机器指令的集合称为机器的指令系统 2 指令的一般格式 操作码 指令是由操作码和地址码两部分构成的 操作码说明所要完成的功能 地址码说明了要在哪里完成这个操作 操作码
  • 大端模式(big-endian)与小端模式(little-endian)

    参考自 大端模式与小端模式 大端模式是指数据的低位保存在内存的高地址中 而数据的高位保存在内存的低地址中 小端模式是指数据的低位保存在内存的低地址中 而数据的高位保存在内存的高地址中 大小端模式的由来 在计算机系统中 我们是以字节为单位的
  • 位、字、字节的区别

    1 位和字节的关系 位 bit 比特 字节 Byte 拜特 1 Byte 8 bit 计算机内存中 最小的存储单位是 位 bit 8个 位 构成一个 字节 byte 字节是内存的基本单位 也是编址单位 例 某计算机的内存是2GB 指的就是该
  • 计算机组成原理——第六章测试题(上)

    1单选 1分 计算机中的数据可以存放在 C 中 A 寄存器 B 主存 C 都可以 D 硬盘 2单选 1分 下列对源码 补码和反码叙述正确的是 B A 当真值为正时 原码和补码的表示形式不同 但其符号位都用 0 表示 B 三种机器数的最高位均
  • 各个硬件的工作原理

    前情回顾 主存储器的基本组成 存储体 用于存放数据的东西 由一系列的存储元件构成 可以存放二进制的 0 和 1 运算器的基本组成 控制器的基本组成 计算机的工作过程 案例分析 执行指令0 执行指令1 执行指令2 执行指令3 执行指令4 总结
  • 5.6.2_IEEE754

    文章目录 一 引子 二 移码 1 移码与补码 2 移码本身 1 127 2 3 3 偏置值 普通情况 特殊情况 三 IEEE 754标准 1 格式 2 类型 1 短浮点数 2 double型 3 案例 1 案例一 2 案例二 4 范围 1
  • 如何吃透csapp

    读薄 读厚csapp 非常不错的博客 既有对书本内容的理解 也有对实验内容的剖析 当然我还没看 先马 并且立个flag 必看完csapp 看完奖励自己一趟旅行 EOF 补充 本书的使用指南
  • 原码表示

    原码的本质 符号位 绝对值 我们下面分析的类型主要是分析纯小数和纯整数的情况 因为在计算机里面 实数是可以转换成下面这两种形式的 纯小数 纯整数 n 位二进制数来表示这个数的原码 符号位占一位 还剩 n 1 位数值位 n 1 位能表达的最大
  • 【计算机组成原理】(四)原码补码的加减乘除

    各种码的作用 模运算的性质 3 1 12 9 9 0 12 9 21 1 12 9 33 2 12 9 15 2 12 9 我们发现等号右边都是 9 相当于等号的左边的数除去12的余数都是9 那我们就说这几个等好左边的数 在mod12的情况
  • 计算机组成原理笔记01

    做题笔记1 学习内容 教材的思维导图 课后练习 计算部分 中国大学MOOC计算机组成原理 计算部分 1 教材的思维导图 2 课后练习P17 7 某计算机主频为1 2GHz 其指令分为4类 它们在基准程序中所占比例及CPI如表1 7所示 指令
  • 补码除法运算(加减交替法)

    x 补 00 1000 除数y 补 11 0101 两个数是异号 因此使用x 补 y 补 11 1101 11 1101继续与y 补 对比 发现是同号 商上1 余数11 1101向左移动一位 再加上 y 补 结果为00 0101 余数00
  • 8.4-中断系统小结(cpu中断七个问题)

    README 本文转自bilibili 计算机组成原理 哈工大刘宏伟 的视频讲解 非常棒 墙裂推荐 1 中断介绍 1 作用 用中断系统实现了外设数据的输入输出 还可以用于程序调试 计算机系统的异常事件 都可以用中断系统来处理 2 中断因素
  • 计算机组成原理--基于Logisim的奇偶校验电路实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的奇偶校验电路实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logi
  • 【计组】学习笔记1.1:8421码和ASCII码

    8421码 8421码即BCD码 由于人们习惯日常使用十进制数 而计算机处理时使用的是二进制数 而两种数制相互转换十分麻烦 因此产生了8421码映射关系 其映射运算例如 1001转化为十进制数9 1 8 0 4 0 2 0 1 8 0 0
  • 【计算机组成原理】总线宽度和总线带宽的区别,总线带宽的计算

    总线宽度 总线的宽度 指总线在单位时间内可以传输的数据总数 即平常说的32位 64位 总线宽度 总线位宽 数据线的根数 总线带宽 总线带宽 指总线在单位时间内可以传输的数据总数 等于总线的宽度与工作频率的乘积 通常单位 MB s MBps
  • 第三章 总线

    一 系统总线概念 系统总线是计算机内部各个组件之间传输数据和控制信息的通信线路 连接中央处理器 内存 输入输出设备 扩展插槽等各个组件 是计算机系统中最重要的硬件组成部分之一 具有数据传输 控制信号传输和总线协议等功能 系统总线的性能对计算
  • 5.1 中央寄存器的原理和组成

    思维导图 中央处理器 CPU 核心原理与组成 引言 中央处理器 CPU 作为计算机的 大脑 在现代计算机硬件中扮演着至关重要的角色 本文旨在深入探讨CPU的基本原理和组成部分 为读者提供一个全面的理解 CPU的基本原理 1 信息处理 CPU

随机推荐

  • JavaFX 控件 ImageView

    ImageView 支持格式 BMP GIF JPEG PNG 加载图片 如果设置了 requestedXXX 尺寸 ImageView中 设置 FitXXX 尺寸是基于requestedXXX 尺寸缩放 Image image new I
  • Linux & Docker常用命令

    目录 一 Docker服务相关命令 二 镜像相关命令 查看镜像 查看本地所有的镜像 搜索镜像 从网络中查找需要的镜像 拉取镜像 删除镜像 三 容器相关命令 查看容器 创建容器 进入容器 启动容器 停止容器 重启应用 删除容器 查看容器信息
  • OpenCV教程——加载、修改、保存图像

    1 颜色空间 颜色空间 也称彩色模型 又称彩色空间或彩色系统 本质上 彩色模型是坐标系统和子空间的阐述 位于系统的每种颜色都有单个点表示 RGB 红绿蓝 是依据人眼识别的颜色定义出的空间 可表示大部分颜色 但在科学研究中一般不采用RGB颜色
  • ARouter 源码分析

    ARouter基本使用 在开始分析源码之前 先了解一下ARoute如何使用的 使用ARoute可以概括为以下3步 项目中引入ARouter 及配置 初始化ARouter 开始使用 下面详细的看下每一步怎么操作 项目中引入ARouter及配置
  • 计算机一级2010的试题,全国计算机等级考试一级office2010试题

    计算机一级是要求考生对基础的计算机知识进行掌握 下面给大家整理了全国计算机等级考试一级office2010试题 欢迎阅读 全国计算机等级考试一级office2010试题 选择题答案 1 5 C A D B B 6 10 B C D B D
  • Qt项目实战2:图片查看器QImageViewer

    在博文Qt学习笔记2 QMainWindow和QWidget的区别中介绍了使用空的Qt项目创建带有菜单栏 工具栏的界面 这里 使用一个简单的图片查看器项目 来熟悉一下Qt的图片显示和基本操作 该项目实现的主要功能 实现图片的打开 关闭 居中
  • Head First Design Mode(12)-状态模式

    该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 状态模式 状态模式和策略模式是 双胞胎 在出生时才分开 策略模式是围绕可以互换的算法来创建成功业务的 状态模式则是通过改变对象内部的状态来帮助对象控制自己的行为 状态
  • 麻雀虽小五脏俱全,中小企业的知识管理须重视

    编者按 在知识资产越来越重要的市场发展环境下 做好企业知识管理对中小企业来说十分重要 本文从企业知识管理的重要性说起 分析了现代中小企业面临的知识管理困境 并进一步提出天翎KMS是如何帮助企业突破这种困境的 概要 1 知识管理的重要性 2
  • 表白墙 -- 前后端代码详解

    表白墙 前后端代码详解 一 前端 二 后端实现 2 1 需求 2 2 创建项目及初始化 2 3 实现提交数据 存档 2 3 1 实现 doPost 2 3 2 构造请求 修改 html 文件 2 3 3 验证 2 4 实现获取数据 读档 2
  • ubuntu-tensorflow环境配置

    前言 刚接触ubuntu和深度学习框架的时候 都可能不清楚 为什么要用ubuntu系统 windows不是很好用吗 其实很多的开发是基于linux系统的 不一定是ubuntu 但是ubuntu是大家比较熟悉的 开源的系统 pc上认为wind
  • 全桥逆变电路

    全桥逆变电路知识汇总 每一部分详细可以点击对应的下方链接 单元一 全桥逆变电路的驱动部分 驱动部分 单元二 全桥逆变电路MOS IGBT管搭建 桥式电路 单元三 阻抗匹配电路 阻抗匹配 对全桥逆变电路知识感兴趣的可以咨询博主QQ 28593
  • HDU6703 Fishing Master

    比赛的时候想的是尽量先炖鱼 果然还是赛后牛逼 反应过来无论怎样总时间内一定有所有的炖鱼时间 所以只需要尽量缩减我们的钓鱼时间即可 一 在炖鱼时间内可以把所有鱼都钓上来 那ans k t 1 n 二 不能在炖鱼时间内把所有鱼都钓上来 即每次钓
  • 小学生学Arduino---------点阵(三)动态的显示与清除

    学习目标 1 理解 整数值 的概念与使用 2 理解 N 1 指令的意义 3 掌握 反复执行多次 指令的使用 4 掌握屏幕模块的清除功能指令 5 理解 反复执行 指令与 反复执行多次 指令的嵌套使用 6 搭建电路图 7 编写程序 效果 整数包
  • 物联网LoRa系列-7:LoRa终端模组ASR6505详解

    1 ASR6505简介 在2018年 Semtech公司推出了在综合性能上优于SX1278 SX1276射频收发器的SX1268 SX1262射频收发器 各大厂商也纷纷开始根据新的射频收发器来升级方案 意在取代性能无法适应市场的SX1278
  • stm32f103串口接收队列,DMA循环模式+空闲中断

    串口通讯最主要的就是要不丢数据 不丢帧 基本设想就是建立一个大的串口缓冲区 串口接收到的数据使用循环队列的方式全部往这个缓冲区放 不过这种方式需要把串口缓冲区弄大一点 防止数据覆盖 在stm32中 利用DMA 空闲中断很容易做到这一点 只需
  • Iterm2使用指南

    Iterm2使用指南 1 安装iterm2 官网直接下载安装 官网 2 个性化设置 iterm2 gt preferences gt profiles 点击新建一个profile 下面可以设置透明度 模糊度 背景图片 设置窗口的主题配色 下
  • jlpt报名系统显示网络错误和服务器忙,【JLPT】12月日语等级考试报名经验与技巧...

    2017年12月日语能力考 JLPT 报名日期即将到来 N1考试 8月28日 N2考试 8月29日 其他级别考试 8月31日 这次日语考试报名的 抢椅子 大战即将展开 为了能够顺利地抢到考位 未名天日语小编还是建议大家提前做好一切报名前的准
  • CSDN-markdown编辑器指导文件

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • SpringBoot+Vue+Uniapp搭建的Java版本的ChatGPT智能Ai对话系统

    chatgpt java system 介绍 SpringBoot Vue Uniapp搭建的Java版本的ChatGPT智能Ai对话系统 小程序和H5包含智能Ai对话 精美Ai壁纸 知识付费商城 积分 会员 分享等公功能 后端管理包括系统
  • 虚拟存储器

    文章目录 虚拟存储器 一 虚拟存储器概述 二 页式虚拟存储器 例题分析 三 段式与段页式虚拟存储器 虚拟存储器 一 虚拟存储器概述 1 引入原因 高速的主存容量满足不了要求 虚拟存储器 在操作系统及辅助硬件的管理下 由主存和大容量外存所构成