【操作系统】虚拟存储器概述

2023-11-14

存储管理分类

实存管理

  • 分区(Partitioning) (连续分配方式) (包括固定分区、可变分区)
  • 分页(Paging)
  • 分段(Segmentation)
  • 段页式(Segmentation with paging)

虚存管理

  • 请求分页(Demand paging)– 主流技术
  • 请求分段(Demand segmentation)
  • 请求段页式(Demand SWP )

常规存储管理的问题

常规存储管理方式的共同点:要求一个作业全部装入内存后方能运行。可能出现的问题:

  • 有的作业很大,所需内存空间大于内存总容量,使作业无法运行。
  • 有大量作业要求运行,但内存容量不足以容纳下所有作业,只能让一部分先运行,其它在外存等待。

解决方法

  • 增加内存容量
  • 从逻辑上扩充内存容量:覆盖、对换、虚拟存储技术

常规存储器管理方式的特征和局部性原理

常规存储器管理方式的特征

  • 一次性:作业在运行前需一次性地全部装入内存。
  • 驻留性:作业装入内存后便一直驻留内存,直至结束。

局部性原理

  • 程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍是顺序执行的。
  • 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但过程调用的深度在大多数不超过 5。
  • 程序中存在许多循环结构,它们将多次执行。
  • 程序中还包括许多对数据结构的处理,如对数组进行操作,它们往往都局限于很小的范围内。

局部性又表现在下述两个方面

  • 时间局部性。如果程序中的某条指令一旦执行,则不久以后该指令可能再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局限性的典型原因,是由于在程序中存在着大量的循环操作。
  • 空间局部性。一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行。

虚拟存储器的基本原理

根据局部性原理,在程序装入时,不需要将其全部读入到内存,而只需将当前需要执行的部分页或段读入到内存,就可让程序开始执行。

在程序执行过程中,如果需执行的指令或访问的数据尚未在内存(称为缺页或缺段) ,则由处理器通知操作系统将相应的页或段调入到内存,然后继续执行程序。 (请求调入功能)

另一方面,操作系统将内存中暂时不使用的页或段调出保存在外存上,从而腾出空间存放将要装入的程序以及将要调入的页或段。 (置换功能)

虚拟存储器的定义和特征

  • 虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
  • 逻辑容量由内存容量和外存容量之和所决定。
  • 运行速度接近于内存速度,成本接近于外存。

虚拟存储器的特征

多次性:作业被分成多次调入内存运行。正是由于多次性,虚拟存储器才具备了逻辑上扩大内存的功能。多次性是虚拟存储器最重要的特征,其它任何存储器不具备这个特征。

对换性:允许在作业运行过程中进行换进、换出。换进、换出可提高内存利用率。

虚拟性:指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。虚拟性是实现虚拟存储器最重要的目标。

虚拟性以多次性和对换性为基础,而多次性和对换性必须以离散分配为基础。

图示

虚拟存储技术的概念

速度和容量:虚拟存储量的扩大是以牺牲 CPU 工作时间以及内外存交换时间为代价。

虚拟存储器的容量取决于主存与辅存的容量,最大容量是由计算机的地址结构决定。

虚拟存储器的逻辑地址空间理论上不受物理存储器的限制。

如 32 位机器,虚拟存储器的最大容量就是 4G,再大CPU 无法直接访问。

虚拟存储器的实现方法:请求分页、请求分段、请求段页式。

请求分页系统

在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页式虚拟存储器系统。

它允许只装入若干页的用户程序和数据,便可启动运行,以后在硬件支持下通过调页功能和置换页功能,陆续将要运行的页面调入内存,同时把暂不运行的页面换到外存上,置换时以页面为单位。

系统须设置相应的硬件支持和软件:

  • 硬件支持:请求分页的页表机制、缺页中断机构和地址变换机构。
  • 软件:请求调页功能和页置换功能的软件。

请求分段系统

在分段系统的基础上,增加了请求调段功能及分段置换功能,所形成的段式虚拟存储器系统。

它允许只装入若干段的用户程序和数据,便可启动运行,以后再硬件支持下通过请求调段功能和分段置换功能,陆续将要运行的段调入内存,同时把暂不运行的段换到外存上,置换时以段为单位。

系统须设置相应的硬件支持和软件:

  • 硬件支持:请求分段的段表机制、缺段中断机构和地址变换机构。
  • 软件:请求调段功能和段置换功能的软件。

图示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【操作系统】虚拟存储器概述 的相关文章

  • 小白学协程笔记2-c语言实现协程-2021-2-10

    文章目录 前言 一 c语言中协程切换方式 二 使用setjmp 和 longjmp实现协程切换 1 setjmp和longjmp函数简介 2 协程实现 三 使用switch case实现协程切换 1 switch case小技巧 2 协程实
  • linux 如何创建卷组

    1 创建一个物理卷 Pvcreate dev sd1 dev sd2 dev sd3 dev sd4 2 用刚才创建的物理卷创建一个卷组 Vgcreate 卷组名 dev sd1 dev sd2 dev sd3 dev sd4 3 创建逻辑
  • pycharm内存不足时如何修改设置?

    Help gt Find Action gt type VM Options gt Click Edit Custom VM Options Pycharm 2016 2 will open the appropriate vmoption
  • RTX线程通信之——线程标志

    文章目录 Thread Flags 概念 RTX线程标志API 案例 LED灯同步闪亮 小结 参考资料 Thread Flags In a real application we need to be able to communicate
  • Client-Server问题

    1 实验内容与要求 需要创建客户Client和服务器Server两个进程 它们通过管道进行通信 Client进程派生3个生产者线程 一个管道线程 共享一个20个slots的缓冲区 每个生产者线程随机产生一个数据 打印出来自己的id 进程 线
  • InfoQ视频直播分享报名:前贝尔实验室、Oracle架构师为你在线揭秘分布式平台内核...

    报名方式 关注InfoQ微信公众号 ID infoqchina 回复 InfoQ 即可观看在线直播技术分享 分享地点 u0026amp 时间 InfoQ直播微课堂将在熊猫 TV 网站播出 看腻了卖肉的女主播 来看看QCon 的明星讲师如何
  • Linux,Network manager 导致节点异常重启

    推断是Network manager 导致的 原因待查今天在VmWare的虚拟机上装了个测试RAC 又遇到了一个摸不到头绪的问题CRS装好后 一旦登陆图形界面 节点就重启 事情就有这么巧不登陆图形界面 观察了1个小时没问题 一旦登陆后 立刻
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • 操作系统 段页式存储管理

    一 引入 分页系统是以页面作为内存分配的基本单位 能有效地提高内存利用率 但信息共享等不方便 分段系统是以段作为内存分配的基本单位 它能够更好地满足用户多方面的需要 信息共享 动态链接等 但采用分区方式管理物理内存 仍然存在碎片问题 段页式
  • Windows运行常用命令(win+R)

    1 calc 启动计算器 2 notepad 打开记事本 3 write 写字板 4 mspaint 画图板 5 snippingtool 截图工具 支持无规则截图 6 mplayer2 简易widnows media player 7 S
  • 使用inet_ntop转换IPv6地址时在macOS和linux上的行为不一样

    下面这段python代码在macOS和linux时运行的结果是不同的 import socket ip socket inet pton socket AF INET6 1 2 3 0 5 6 7 8 print socket inet n
  • Java服务端限制下载速度

    没有资源取之不尽用之不竭 服务器带宽有限 能限制一点算一点 最近在使用云存储openstack swift做文件存储下载 如题先上限速code private Long writeResponse HttpServletResponse r
  • 使用Java读写存储在latin1编码的MySQL中的UTF-8编码的中文

    绝大多数情况下 一个项目中 都是使用同一套编码 如 全部使用UTF 8或者GBK 但是当涉及到多个项目合并 新手加入等情况时 不可避免出现使用多套编码的情况 所有字符串都是英文的情况还好 若是出现了中文 就导致了乱码的出现 下面以我碰到的问
  • 内存管理——分页分段

    一 分页存储管理 1 页面与页框 1 页面 将一个进程的逻辑地址空间分成若干个大小相等的片 称为页面或页 并为各页加以编号 2 页框 相应于页面 把内存空间分成和页面相同大小的若干个存储块 称为 物理 块或页框 frame 3 页内碎片 在
  • 《深入理解计算机系统》实验四Architecture Lab

    前言 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻请看 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻 我觉得这个文档对整个实验很有帮助 如果你的Y86 64环境还没安装好可以看
  • 使用ShellJS提升你的开发效率(一)

    Shelljs Unix shell commands for Node js Shelljs是Node js下的脚本语言解析器 具有丰富且强大的底层操作 Windows Linux OS X 权限 Shelljs本质就是基于node的一层
  • 《OSPF和IS-IS详解》一1.7 独立且平等

    本节书摘来自异步社区 OSPF和IS IS详解 一书中的第1章 第1 7节 作者 美 Jeff Doyle 更多章节内容可以访问云栖社区 异步社区 公众号查看 1 7 独立且平等 OSPF和IS IS详解与TCP IP相比 OSI协议对各国
  • Linux(12):磁盘配额(Quota)与进阶文件系统管理

    磁盘配额 Quota 的应用与实作 Quota 的一般用途 针对 www server 例如 每个人的网页空间的容量限制 针对 mail server 例如 每个人的邮件空间限制 针对 file server 例如 每个人最大的可用网络硬盘
  • I/O设备模型

    I O设备模型 绝大部分的嵌入式系统都包括一些I O Input Outut 输入 输出 设备 例如仪器上的数据显示屏 工业设备上的串口通信 数据采集设备上用于保存数据的Flash或SD卡 以及网络设备的以太网接口等 I O设备模型框架 R
  • 组建一家IT公司的一些事项

    组建一家IT公司需要考虑多个方面 包括确定公司名称 选择注册地点 确定公司类型 组建团队 选择合适的技术和平台以及建立良好的客户关系等 以下是一些详细的步骤和建议 一 组建事项 确定公司名称 在选择公司名称时 需要考虑名称的含义和市场竞争性

随机推荐

  • 翁凯C语言作业7-1

    include
  • Linux常用命令_文件搜索命令

    文章目录 1 文件搜索命令find 2 其他搜索命令 2 1 文件搜索命令 locate 2 2 文件搜索命令 which 2 3 文件搜索命令 whereis 2 4 文件搜索命令 grep 1 文件搜索命令find 2 其他搜索命令 2
  • 数据集【NO.13】复杂场景下的鸟类检测数据集

    写在前面 数据集对应应用场景 不同的应用场景有不同的检测难点以及对应改进方法 本系列整理汇总领域内的数据集 方便大家下载数据集 若无法下载可关注后私信领取 关注免费领取整理好的数据集资料 今天分享一个非常好的非常小众的研究方向 有应用创新
  • 获取文件夹下所有的文件数量

    文件夹下所有的文件数量 param type url 文件链接 function shuLiang url 造一个方法 给一个参数 sl 0 造一个变量 让他默认值为0 arr glob url 把该路径下所有的文件存到一个数组里面 for
  • IDEA 中 MyBatis还可以这么玩!!!

    前言 1 搭建 MyBatis Generator 插件环境 a 添加插件依赖 pom xml b 配置文件 generatorConfig xml c 数据库配置文件 jdbc properties d 配置插件启动项 2 项目实战 a
  • C++网络编程Reactor模式介绍

    Reactor模式是一种事件驱动的设计模式 主要用于处理服务请求 这些请求在一开始并不知道何时会到达 它是一种非阻塞I O模式 可以处理大量并发连接 因此在网络编程中被广泛使用 Reactor模式的主要组件包括 Reactor 这是事件循环
  • 【TS第三讲】完善TS开发环境

    文章目录 写在前面 ts node nodemon nodemon文件类型 nodemon文件范围 写在最后 写在前面 探索TypeScript世界 驭Vue3 Ts潮流 开启前端之旅 欢迎来到前端技术的精彩世界 无论你是刚刚踏入编程大门的
  • JS加密方式

    常见加密方式 加密 前端 1 把加密的数据给后端 2 JS加密 3 携带正确的参数 进行加密 后端 存入数据库或者校验 为了反爬 前端请求就会进行携带指定的参数 参数的值会进行加密 后端再进行校验 1 MD5加密 概念 线型散列算法 签名算
  • ffmpeg结构体一览表

    AVFormatContext typedef struct AVFormatContext A class for logging and ref avoptions Set by avformat alloc context Expor
  • ESP32CAM基于Python环境开发实时摄影

    开发环境搭建 安装Thonny代码编辑器和ESP32带有CAM的固件 链接 https pan baidu com s 1NBTMvZzzF6eJse2Wsr2ykQ pwd 1o6y 提取码 1o6y 安装Thonny 教程网上一大把 基
  • 对称加密+非对称加密,实现数据安全传输

    一般金融类的产品 涉及前端和后端交互的时候 都会都严格的数据安全保证 防止黑客攻击 信息篡改 加密方式有很多 总的来说 分为2种 对称和非对称 我们先来看一下 这两种加密方式分别是什么 他们有什么区别 对称加密 对称加密 即采用对称的密码编
  • http和https协议

    HTTP协议 简介 HTTP是Hyper Text Transfer Protocol 超文本传输协议 的缩写 HTTP是一个属于应用层的面向对象的协议 由于其简捷 快速的方式 适用于分布式超媒体信息系统 HTTP协议以明文方式发送内容 不
  • 浮动元素无法撑开父元素问题

    如何解决浮动元素无法撑开父元素问题 首先我们看一下问题 div class wrapper div class content div div class content div div class content div div clas
  • 【Unity】新InputSystem中点按UI组件模拟键盘输入

    项目中用空格作为对话的交互键 想要实现对话时点按UI中的panel和空格有一样的效果 文档中创建event并传入的方法 原文地址 Input events Input System 1 3 0 第二个方法第二个参数搞不懂应该传入什么 第一个
  • 为你的VMware 15.5 虚拟机MacOS系统手动安装VMware Tools

    本博客同步发布在 为你的VMware 15 5 虚拟机MacOS系统手动安装VMware Tools VMware Tools 是VMware软件提供的一个辅助工具 可以提升虚拟机的使用体验 默认伴随虚拟机自动安装 但有时候自动安装会出错
  • 像数字化原生代那样思考——企业数字化转型的挑战与应对

    点击上方 中国云报 可关注 似乎是一眨眼间 90后 甚至 00后 已经成长起来 渐渐成了消费的主力军 他们使用的是各类移动智能设备 形形色色的社交工具 对云计算 大数据天生就具有亲近感 IDC有一个词来形容这一代消费者 数字化原生代 面对数
  • grafana创建dashboard

    前提 安装grafana 创建dashboard 点击侧边栏菜单Dashboards下的New dashboard 点击Add a new panel 进入到 New dashboard Edit 面板视图 到Query 标签页 配置你的Q
  • Android 隐藏虚拟按键,并且全屏

    隐藏虚拟按键 并且全屏 protected void hideBottomUIMenu 隐藏虚拟按键 并且全屏 if Build VERSION SDK INT gt 11 Build VERSION SDK INT lt 19 lower
  • 并发下sftp连接报错——com.jcraft.jsch.JSchException: connection is closed by foreign host

    当对单接口极限测试时 随着并发量上升 接口稳定性出现不稳定的情况 排查后台日志 发现报错在该接口调用sftp上传时出现问题 确切的是在初始化连接时失败 原因 系统SSH终端连接数配置过小 查看虚拟机该参数 该参数在 etc ssh sshd
  • 【操作系统】虚拟存储器概述

    存储管理分类 实存管理 分区 Partitioning 连续分配方式 包括固定分区 可变分区 分页 Paging 分段 Segmentation 段页式 Segmentation with paging 虚存管理 请求分页 Demand p