虚拟存储技术(VIRTUAL MEMORY)

   所谓的虚拟存储技术是指:当进程运行时,先将其一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不存在内存中时,由操作系统自动完成将它们从磁盘调入内存的工作。

虚拟地址空间—–分配给进程的虚拟内存
虚拟地址—–在虚拟内存中指令或数据的位置,该位置可以被访问,仿佛它是内存的一部分。


存储器的层次结构


虚存 与 存储体系

  • 把内存和磁盘有机地结合起来使用,从而得到一个容量很大的“内存”,即虚存。

  • 虚存是对内存的抽象,构建在存储体系之上,由操作系统协调个存储器的使用

  • 虚存提供了一个比物理内存空间大得多的地址空间


地址保护

  • 确保每个进程有独立的地址空间
  • 确保进程访问合法的地址空间,防止地址越界

    注意: 上图中的基地址寄存器和界限寄存器操作系统通过特殊的特权指令加载
  • 确保进程的操作合法

虚拟页式(PAGING)

**虚拟存储技术 + 页式存储管理方案
-> 虚拟页式存储管理系统
主要包括:1. 请求调页(demand paging) 2. 预先调页(prepaging)

基本思想

  • 进程开始运行之前,不是装入全部页面,二是装入一个或零个页面

  • 之后,根据进程运行需要,动态装入其他页面

  • 当内存空间已满,而有需要装入新的页面时,则根据某种算法置换内存中的某个页面,以便装入新的页面

    其实就是以CPU时间和磁盘空间换取昂贵的内存空间,这是操作系统中的资源转换技术


页表与页表项的设计

页表表项设计

  • 页表由页表项组成
  • 页框号、有效位、访问位、修改位、保护位
    • 页框号(内存块号、物理页面号、页帧号)
    • 有效位(驻留位、中断位):表示该页是内存还是磁盘
    • 访问位:引用位
    • 修改位:此页在内存中是否修改过
    • 保护位:读/可读写

通常,页表项是硬件设计


关于页表

  • 32位虚拟地址空间的页表规模

    • 如果页面大小为4k;页表项大小为4字节,则一个进程地址空间有2^20页,其页表需要占1024页(页表页)
  • 64位虚拟地址空间
    -页面大小为4k; 页表项大小为8字节,则一个进程的页表规模:就达到了 32,000TB

  • 页表页在内存中若不连续存放,则需要引入页表页的地址索引表-> 页目录(Page Directory)


    注意 二级页表可以表示4G的虚拟地址空间


引入反转(倒排)页表

  • 地址转换
    从虚拟地址空间出发: 虚拟地址->查页表->得到页框号->形成物理地址
    每个进程一张页表
  • 解决思路
    • 从物理地址出发,系统建立一张页表
    • 页表项记录进程i的某虚拟地址(虚页号)与页框号的映射关系

存储模型之虚拟存储技术相关推荐

  1. 【华为云技术分享】ARMv8-A存储模型概述(1)

    上两期中我们介绍了处理器存储模型的一般概念,这一期我们将介绍ARMv8-A架构中的地址转换系统. 一.VMSAv8-64地址转换系统 虚拟内存系统架构(Virtual MemorySystem Arc ...

  2. 【华为云技术分享】处理器存储模型概述(1)

    上一期中我们介绍了ARMv8-A架构中的异常级别,从这一期开始的接下来四期我们将介绍ARMv8-A的存储模型.第一期我们将介绍存储模型中地址转换和访存控制的一般概念,第二期我们将介绍缓存相关的基本概念 ...

  3. 存储模型(蓝色字体是自己想的,没有被证实)

    一)基本概念  地址重定位(RELOCATION)又名:地址转换.地址映射.地址翻译 程序装载到内存才可以运行,通常,程序可执行文件格式保存在磁盘上 多道程序设计模型  允许多道程序同时进入内存 每个 ...

  4. 模型可解释性技术概览

    XAI系列二:模型可解释性技术概览 传统网络安全威胁分析依赖专家知识及基本的数据分析,然而随着攻击技术的复杂化.安全数据接入的多元化,高性能人工智能技术越来越多的应用到威胁分析中,试图解放安全行业的生 ...

  5. 数据库存储模型-数据存储

    按照存储模型来说分为以下4类. 键值存储 列式存储 文档存储 图形存储 键值模型 键值数据模型的主要思想来自于哈希表:在哈希表中有一个特定的key和一个value指针,指向特定的数据.键值模型对于海量 ...

  6. 【万字干货】OpenMetric与时序数据库存储模型分析

    摘要:解读OpenMetric规范和指标的模型定义基础上,结合当下主流的时序数据库核心存储及处理技术,尝试让用户(架构师.开发者或使用者)结合自身业务场景选择合适的产品,消除技术选型的困惑. 本文分享 ...

  7. 虚拟存储技术-virtual memory technologies

    计算机的快速发展得益于存储系统的快速发展. 程序的局部性技术是虚拟存储技术引入的前提. 把局部性技术和虚拟存储技术结合在一起. 计算机的存储系统从性能角度看是一个存储器山,其实就是一个多层次结构的所谓 ...

  8. ZStack——存储模型:主存储和备份存储

    ZStack通过逻辑功能,将存储系统抽象成主存储和备份存储.一个主存储是一个存放VM磁盘的存储池:一个备份存储是这么一个存储,用户存储镜像模板.备份的磁盘.快照.主存储和备份存储可以是物理分离的存储系 ...

  9. mysql的存储模型_一种BIM模型数据的数据库存储格式的制作方法

    本发明涉及建筑BIM技术领域,特别涉及一种BIM模型数据的数据库存储格式. 背景技术: 在Revit文件的数据格式中,有的遗漏数据,如FBX:有的封闭不够开放,如IFC:有的涉及操作比较复杂的数据库, ...

最新文章

  1. linux烧录,新人求教,怎么烧录Linux系统到一个小芯片上?
  2. 地理信息系统(GIS)
  3. Linux 串口编程三 使用termios与API进行串口程序开发
  4. 怎么判断到了月初_双春年与无春年怎么区分?2021年是寡妇年吗?
  5. jdk的Selector(3)select的过程
  6. Spring源码之FactoryBean接口的作用和实现原理
  7. 海军装备、舰船电子设备|环境可靠性试验|GJB150A\GJB4
  8. 自定义View之HenCoder学习笔记
  9. 十四五规划和2035年远景目标纲要 第五篇 加快数字化发展 建设数字中国
  10. 计算机学拼音打字,拼音打字练习
  11. Geometric tampering estimation by means of a sift-based forensic analysis论文阅读
  12. 【NOIP提高组五校联考】挖金矿
  13. Java继承的特征和优势
  14. win7浏览器主页修改不过来_Win7 IE无法修改默认主页怎么办?解决IE浏览器主页无法修改主页...
  15. 娱乐圈有缘无份的明星
  16. Holy Grail 计蒜客41305
  17. matlab:使用4阶龙格库塔方法求解常微分方程组
  18. 异构网络-元图、知识图谱
  19. Mosquitto设置用户名密码
  20. 共享打印机无法打印?常见的12种解决方法【详解】

热门文章

  1. MVC中利用ViewBag传递Json数据时的前端处理方法
  2. 室内定位——如何在微信小程序中获取Beacon的RSSI值
  3. 粮仓分布式多点测温的简单参考方案
  4. 无线路由传输速率的秘密
  5. PTA:一帮一(C语言)
  6. 命名实体识别(二)——基于条件随机场的命名实体识别
  7. 基于GitHub搭建个人网站
  8. 分布式高并发服务三种常用限流方案简介
  9. linux运行jar的几种方式
  10. 软考证书找工作有用吗?软考找工作用处大吗