【计算机操作系统】虚拟内存的基本概念

news2024/11/17 0:27:19

文章目录

  • 虚拟内存的基本概念
    • 传统存储管理方式的特征&缺点
    • 局部性原理
    • 虚拟内存的定义和特征
      • 虚拟内存的定义
      • 虚拟内存的特征
    • 虚拟内存技术的实现

虚拟内存的基本概念

前面已经介绍过内存管理相关的重点,传统存储管理方式、覆盖与交换技术、地址转换和存储保护在之前都有介绍过,本节重点介绍虚拟存储技术

在这里插入图片描述

传统存储管理方式的特征&缺点

  • 一次性作业必须一次性全部装入内存后才能开始运行

    这会造成两个问题:
    ① 作业很大时,不能全部装入内存,导致大作业无法运行
    ② 当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降

  • 驻留性:一旦作业被装入内存,作业就会一直驻留在内存中,直至作业运行结束

    事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源

以上问题都可以使用虚拟存储技术来解决

局部性原理

要真正理解虚拟内存技术的思想,首先须了解著名的局部性原理
从广义上讲,快表、页高速缓存及虚拟内存技术都属于高速缓存技术,这个技术所依赖的原理就是局部性原理

局部性原理表现在以下两个方面:

  • 时间局部性

    程序中的某条指令一旦执行,不久后该指令可能再次执行
    某数据被访问过,不久后该数据可能再次被访问
    产生的原因是程序中存在着大量的循环操作

  • 空间局部性

    一旦程序访问了某个存储单元,在不久后,其附近的存储单元也将被访问即程序在一段时间内所访问的地址,可能集中在一定的范围之内(因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的)

时间局部性通过将近来使用的指令和数据保存到高速缓存中,并使用高速缓存的层次结构实现
空间局部性通常使用较大的高速缓存,并将预取机制集成到高速缓存控制逻辑中实现
虚拟内存技术实际上建立了 “内存 —— 外存” 的两级存储器结构,利用局部性原理实现高速缓存

虚拟内存的定义和特征

虚拟内存的定义

在这里插入图片描述

基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存暂时用不到的部分留在外存就可以让程序开始执行

在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序

若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存

在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存(操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充)

虚拟内存的特征

  • 多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存
  • 对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出
  • 虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量

虚拟内存技术的实现

虚拟内存技术允许将一个作业分多次调入内存。采用连续分配方式时,会使相当一部分内存空间都处于暂时或 "永久” 的空闲状态,造成内存资源的严重浪费,而且也无法从逻辑上扩大内存容量,因此虚拟内存的实现需要建立在离散分配(非连续分配)的内存管理方式的基础上

虚拟内存的实现有以下三种方式:

  1. 请求分页存储管理
  2. 请求分段存储管理
  3. 请求段页式存储管理

传统的非连续性分配存储管理方式和虚拟内存的存储管理方式的主要区别如下:
在程序执行过程中,当所访问的信息不在内存时由操作系统负责将所需信息从外存调入内存,然后继续执行程序(操作系统要提供请求调页 (或请求调段) 功能)
若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存 (操作系统要提供页面置换(或段置换)的功能)


【计算机操作系统】 专栏的文章 均有参考 《王道计算机考研 操作系统》 课程视频

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业监控大盘Grafana

企业监控大盘Grafana Grafana简述 Grafana 是一个开源的度量分析与可视化工具。提供查询、可视化、报警和指标展示等功能,能灵活创建图表、仪表盘等可视化界面 主要功能: 可视化: 提供多种可选择的不同类型的图形,能够灵活绘制不同样式&…

css 宫格样式内容上下结构

结构 <div class"sc-content-group"><div class"sc-content-item"><div class"sc-item-img"><el-image :src"src" :preview-src-list"[src]"></el-image></div><div class"s…

放弃你的 KPI。改用这种方法

如果您和我一样&#xff0c;那么大约十二年前&#xff0c;您就因为 Eric Ries 而加入了 MVP/精益创业潮流。谁不想“利用持续创新打造出极为成功的企业”呢&#xff1f; 但当你读到这句话时&#xff0c;你可能会注意到一些事情。精益求精并专注于最低限度的可行性是给初创公司的…

深入了解Elasticsearch集群:Elasticsearch集群的工作原理与优化策略

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 ELasticsearch作为一个分布式搜索引擎&#xff0c;能够出色地支持集群模式、动态水平扩容、故障转移等分布式系统特性&…

第二证券:什么是股票打板?怎么打板?

打板&#xff0c;指的是在股价即将涨停或许涨停之后再进行挂单介入&#xff0c;不涨停不进入&#xff0c;股票打板寻求的是出资更大的确认性。 打板的步骤&#xff1a; 1、复盘并对下一个交易日行情进行判别 出资者能够把其时交易日的商场条理树立清楚&#xff0c;找出主线板…

PWM驱动电机系列——PID控制 (各电机设备之间的驱动差异及区别)自动控制系统的性能指标

电机驱动 直流电机&#xff1a;类似于驱动LED亮灭一样&#xff0c;根据电机的电路原理图判断是什么数字电平有效。 步进电机&#xff1a;类似于驱动LED的周期翻转一样&#xff0c;在一个周期里面进行对步进电机的IO电平的自动翻转&#xff0c;LED!LED 。(1)使用的定时器方式&…

C#/WinForm实现炸弹人游戏

游戏类设计 代码地址&#xff08;gitee&#xff09;&#xff1a;炸弹人游戏: WinForm实现炸弹人游戏

开源大屏设计工具DataRoom

DataRoom是一个开源项目&#xff0c;主要作为一个数据共享与协作平台&#xff0c;同时也具备大屏可视化设计器的功能。 开源地址&#xff1a;DataRoom: &#x1f525;基于Vue的大屏可视化设计器&#xff0c;前后端一体化解决方案&#xff0c;几十种炫酷图表&#xff0c;支持多种…

曝光无线领夹麦克风选购五大陷阱:选麦克风谨防音质粗劣夸大宣传

在移动录制与现场直播日益普及的时代背景下&#xff0c;无线领夹麦克风成为了众多专业人士与爱好者的首选装备。但在这个看似大热的市场背后&#xff0c;却隐藏着不少消费者难以察觉的“坑”。部分品牌为了抢占市场份额&#xff0c;不惜以牺牲品质为代价&#xff0c;通过夸大宣…

如何使用cornerstone3D渲染3D影像

&#x1f353; 前言 在日常开发中经常会遇到除了渲染MPR视图外&#xff0c;还需要渲染3D扫描影像&#xff0c;本文从具体的实现、viewport type解读、场景预设等方面来介绍3D具体的实现及涉及到的相关概念。 &#x1f951; 效果演示 点击查看完整代码 &#x1f352; 实现及概…

ArcMap教程(01):制作人口专题图

文章目录 01、ArcGIS专题图制作第一步:插入数据框第一步:加载人口分级地图第二步:添加范围指示器第三步:修改样式1、添加标题2、添加比例尺3、添加指北针4、插入图例01、ArcGIS专题图制作 第一步:插入数据框 1、工具栏【插入】–>【数据库】 2、选中图层下的【宜昌市…

Python酷库之旅-第三方库Pandas(092)

目录 一、用法精讲 391、pandas.Series.hist方法 391-1、语法 391-2、参数 391-3、功能 391-4、返回值 391-5、说明 391-6、用法 391-6-1、数据准备 391-6-2、代码示例 391-6-3、结果输出 392、pandas.Series.to_pickle方法 392-1、语法 392-2、参数 392-3、功能…

token令牌,过滤器,JWT,拦截器

令牌(token)技术 不需要在服务端去保留用户的认证信息或者会话信息。这就意味着基于token认证机制的应用不需要去考虑用户在哪一台服务器登录了 1.基本流程 用户使用用户名密码来请求服务器 服务器进行验证用户的信息 服务器通过验证发送给用户一个token 客户端存储token&#…

大模型学习笔记 - LLM 之 LLaMA系列(待更新)

LLaMA 系列 LLaMA 概述 LLaMA-1LLaMA-2LLaMA-3 LLaMA 概述 LLaMA: Open and Efficient Foundation Language Models Llama 2: Open Foundation and Fine-Tuned Chat Models (LLama2 & LLama2-Chat) LLama 3 | LLama 3.1 LLaMA-1 涉及到的基础知识点: pre-normalizat…

Leetcode面试经典150题-25.K个一组反转链表

解法都在代码里&#xff0c;不懂就留言或者私信 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val …

基于java图书销售管理系统设计与实现

1引言 随着Internet国际互联网的发展&#xff0c;越来越多的企业开始建造自己的网站。基于Internet的信息服务&#xff0c;商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的&…

利用API返回值实现商品信息的自动化更新

利用API返回值实现商品信息的自动化更新是一个涉及到数据交互、数据处理和自动化脚本编写的任务。以下是一个基本的步骤指南&#xff0c;帮助你实现这一过程&#xff1a; 1. 确定API接口 首先&#xff0c;你需要确定能够提供商品信息的API接口。这通常是由商品数据提供商&…

2024年培训服务行业CRM研究报告

国家实行“双减”政策后&#xff0c;很多教培企业慢慢淡出了公众的视野&#xff0c;很多人觉得&#xff0c;教培行业怕是要日薄西山了。 但如果你了解了培训服务行业到底有多庞大&#xff0c;你就会立即改变自己的想法。 从2017年起&#xff0c;中国职业培训机构的年注册量超…

X86架构基础

X86目前的架构有32位和64位两种&#xff0c;不同的架构支持的运行模式也是不一样的&#xff0c;64位的基本能兼容32位。64位是X86架构的主流&#xff0c;本文内容默认以64位位基础。X86平台目前的支持的运行模式有以下几种&#xff1a; 1、实模式&#xff1a;这是最早的X86运行…

ue5远程渲染和本地渲染的区别,及云渲染的联系

UE5这款引擎以其令人惊叹的渲染能力&#xff0c;为游戏开发者们打开了一扇通往视觉盛宴的大门。但是在UE5的世界里&#xff0c;渲染技术其实还有着本地渲染和远程渲染之分&#xff0c;而且它们与时下大热的云渲染技术也有着千丝万缕的联系。本文主要说明UE5中的远程渲染和本地渲…