虚拟存储器

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(使用前将#替换为@)

虚拟存储器 的相关文章

  • 总线带宽计算公式_「计算机组成原理」:总线概述

    计算机系统的五大部件之间连接的方式有两种 xff0c 一种是各部件之间使用单独的连线 xff0c 称为分散连接 一种是将各部件连到一组公共信息传输线上 xff0c 称为总线连接 总线的基本概念 计算机系统的五大部件之间连接的方式有两种 xf
  • [最强期末复习]计算机组成原理:指令系统之指令概念解析

    不知不觉就到期末啦 xff0c 在计组的复习道路上越走越发艰难 xff0c 最近都会发和计组或者机器学习 web有关的文章 xff0c 重温和复习准备期末考试 xff0c 也就临近期末才比较有自己的时间了 xff0c 有任何问题评论区见啦
  • 计算机组成原理(四):计算机性能指标

    一 存储器容量相关知识 1 总容量的计算公式 xff1a 总容量 xff08 位bit xff09 61 存储单元个数 存储字长 总容量 xff08 字节Byte xff09 61 存储单元个数 存储字长 8 2 K 61 2 10 M 6
  • 计算机组成原理——总线

    一 总线概述 1 xff0e 基本概念 xff08 1 xff09 总线简图 每个总线可能由很多根信号线组成 xff08 2 xff09 总线的物理实现 如上图 xff0c 4根信号线组成 一根 总线 xff0c 所有硬件部件都可以通过这根
  • booth算法

    booth算法 1 booth算法定义 2 二进制乘法过程 3 二进制乘法转换成 booth乘法运算 4 Radix 2 Booth乘法器 5 Radix 4 Booth乘法器 6 Booth乘法器计算实例 1 booth算法定义 将乘数看
  • 【计算机组成原理】笔记(B站王道考研)

    课程 B站 王道考研 截图来自课程 计算机硬件 p4 计算机硬件的基本组成 冯诺依曼结构 理解冯诺依曼计算机 在计算机系统中 软件和硬件在逻辑上等价 冯诺依曼计算机特点 计算机由运算器 控制器 存储器 输入设备 输出设备五大部件组成 指令和
  • 位、字、字节的区别

    1 位和字节的关系 位 bit 比特 字节 Byte 拜特 1 Byte 8 bit 计算机内存中 最小的存储单位是 位 bit 8个 位 构成一个 字节 byte 字节是内存的基本单位 也是编址单位 例 某计算机的内存是2GB 指的就是该
  • 《计算机组成原理实验》 单周期CPU

    计算机组成原理实验 单周期CPU 前言 这是中山大学2018年计算机组成原理实验中单周期CPU的实验报告 仿真与写板的内容暂略 所有源代码 包括写板 已经上传至我的github当中 欢迎大家访问 github个人主页 https stara
  • 【计算机组成原理笔记】1.1计算机系统简介

    1 1计算机系统简介 计算机系统由硬件 软件两部分组成 硬件是看得到摸得到的实体 如硬盘 显卡 主板等 软件程序通常寄寓于各种媒体 如RAM ROM 磁带 光盘等 RAM 随机存取存储器 英语 Random Access Memory 缩写
  • 各个硬件的工作原理

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

    软件架构视图 从软件架构本身的特点出发讨论了架构建模及与特定应用领域密切相关的架构风格 本节将从对架构编档的角度对软件架构视图及其风格进行讨论 1 软件视图的分类 现代软件系统非常复杂 通常在某个具体的时间内只需将注意力集中在某几个结构上
  • 计算机的性能公式

    cpu执行时间 简称CPU时间 表示执行某一任务在CPU上所花费的时间 不包括等待I O或运行其他程序的时间 程序的cpu执行时间 cpu时钟周期数 时钟周期时间 cpu时钟周期数 主频 要想缩短cpu执行时间 最简单的方法就是缩短cpu的
  • 1. 存储器分类

    存储器的分类 存储器有很多的分类依据 按存储介质 读写功能 存取方式 在计算机中的作用等 按存储介质分类 磁性介质 磁盘 磁带 光介质 光盘 半导体介质 内存 固态硬盘 内存是易失性存储器 掉电后无信息保存 固态硬盘是非易失性存储器 掉电信
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的4位并行加法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Log
  • 计算机组成原理 总线与微命令实验

    总线与微命令实验 实验环境 计算机组成原理实验环境 实验目的 理解总线的概念和作用 连接运算器与存储器 熟悉计算机的数据通路 理解微命令与微操作的概念 实验要求 做好实验预习 读懂实验电路图 熟悉实验元器件的功能特性和使用方法 按照实验内容
  • 计算机中的指令跳转

    前言 在上一章中说了 高级语言为什么怎么样成为计算机能够读懂的语言 下面就来说说这些计算机能够读懂的语言中 他们究竟是如何设计的 CPU是如何执行指令的 在我们现实常用的CPU中 有几百亿的晶体管通过电路起来 在逻辑上我们可以认为CPU就是
  • 补码加减运算及判断溢出方法

    一 补码加减运算 二 判断溢出方法 1 符号位判溢出方法 对于加减运算 两个异号数相加或者两个同号数相减 结果的绝对值一定比任何一个数的绝对值要小 不会发生上溢出 两个异号数相减或者两个同号数相加的绝对值肯定比任何一个数要大 可能发生溢出
  • 【计算机组成原理】总线宽度和总线带宽的区别,总线带宽的计算

    总线宽度 总线的宽度 指总线在单位时间内可以传输的数据总数 即平常说的32位 64位 总线宽度 总线位宽 数据线的根数 总线带宽 总线带宽 指总线在单位时间内可以传输的数据总数 等于总线的宽度与工作频率的乘积 通常单位 MB s MBps
  • 计算机组成原理期末复习【超实用】

    计算机组成原理 第二版 唐朔飞 编著 课本有些地方还不错 可以下载电子版看看 b站2小时讲解链接 https www bilibili com video BV1x4411q7Fz 初次录讲解视频 各种差错和画音不同步请各位谅解 我录到后面
  • 计算机组成原理综合1

    1 完整的 计算机系统 应包括 D A 运算器 存储器和控制器 B 外部设备和主机 C 主机和实用程序 D 配套的硬件设备和软件系统 2 计算机系统中的存储器系统是指 D A RAM存储器 B ROM存储器 C 主存储器 D 主存储器和外存

随机推荐

  • 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 引入原因 高速的主存容量满足不了要求 虚拟存储器 在操作系统及辅助硬件的管理下 由主存和大容量外存所构成