【笔试题心得】物理内存和虚拟内存的区别和联系

物理内存和虚拟内存指的是什么——区别

物理内存:

  1. 定义: 物理内存是计算机实际存在的硬件内存,是CPU和其他硬件设备可以直接访问的存储空间。
  2. 大小限制: 物理内存的大小是有限的,取决于计算机硬件的配置,通常以GB为单位。
  3. 速度: 访问物理内存的速度相对较快,因为它是直接由CPU和其他硬件组件访问的。
  4. 作用: 用于存储正在运行的程序、数据、操作系统等信息。

虚拟内存:

  1. 定义: 虚拟内存是一种使用磁盘空间来扩展物理内存的技术。它允许运行的程序使用比物理内存更大的内存空间。
  2. 大小限制: 虚拟内存的大小理论上可以比物理内存大得多,但受操作系统和硬件的限制。
  3. 速度: 访问虚拟内存的速度相对较慢,因为需要与磁盘进行交互,比访问物理内存要慢得多。
  4. 作用: 在物理内存不足时,操作系统可以将部分程序数据移动到虚拟内存中,从而扩展可用内存,但这会导致性能下降。

虚拟内存的目的是什么?

虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。

为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。

这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。

从上面的描述中可以看出,虚拟内存允许程序不用将地址空间中的每一页都映射到物理内存,也就是说一个程序不需要全部调入内存就可以运行,这使得有限的内存运行大程序成为可能。

例如有一台计算机可以产生 16 位地址,那么一个程序的地址空间范围是 0~64K。该计算机只有 32KB 的物理内存,虚拟内存技术允许该计算机运行一个 64K 大小的程序。

MMU内存管理
        ——物理内存和虚拟内存用过MMU建立联系

MMU(Memory Management Unit,内存管理单元)是一种硬件模块,用于在CPU和内存之间实现虚拟内存管理

MMU由两个模块组成:TLBTWU。
其中TLB缓存了虚拟地址到物理地址的转换关系;
TWU可以遍历页表,查找相应的页表项。

TLB是一个高速缓存,用于缓存虚拟地址到物理地址的转换结果。
页表的查询过程是由TWU硬件自动完成的,但是页表的维护是需要操作系统实现的,页表存放在主存中。

页表的查询是一个耗时的过程,理想情况下
TLB命中,可以从中直接得到虚拟地址对应的物理地址。
当TLB未命中的时候,MMU才会通过TWU查询页表 页表是一种数据结构,记录了每个虚拟页面和其对应的物理页面之间的映射关系】从而翻译虚拟地址得到物理地址。
        得到物理地址后,首先要查询该物理地址的内容是否存在于cache中
                若cache命中,则直接取出物理地址对应的内容返回给处理器。
                若cache没有命中,会进一步访问主存获取相应的内容,然后回写到cache,并返回给处理器。

如果没能在页表中查询到虚拟地址对应的物理地址,则会触发一个与MMU相关的缺页异常,在异常处理的过程中,会将EMMC中相关的数据加载到主存,然后建立相应的页表,然后将物理地址对应的内容返回给cache及处理器。
链接:https://www.zhihu.com/question/538363670/answer/2828136163

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R-Meta分析与【文献计量分析、贝叶斯、机器学习等】多技术融合

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

导读-Linux简介

Linux简介 ​ 总所周知,计算机系统包含硬件和软件两部分。硬件部分被称为裸机,主要包括中央处理器(CPU)、内存、外存和各种外部设备。软件部分主要包括系统软件和应用软件两部分。系统软件包括操作系统、汇编语言、编译程序、数据…

docker compose部署zookeeper

单机部署 新建docker-compose.yaml version: 3 services:zookeeper:image: zookeeper:3.5.7container_name: base-zookeeperhostname: zookeeperprivileged: truerestart: alwaysports:- 2181:2181environment:TZ: "Asia/Shanghai"volumes:- ./volumes/zookeeper/d…

蓝牙资讯|2023年Q2蓝牙耳机市场报告发布,苹果依然占据第一

市场调查机构 Canalys 发布最新报告,2023 年第二季度全球个人智能音频设备(包括 TWS, 无线头戴,无线颈挂)下滑了 2%,出货量达到 9568 万部,基本追平去年同期。其中,真无线耳机(TWS&a…

Java语言怎么输出有颜色的字符串呢?

在Java中,我们应该如何输出有颜色的文字字符串呢? 目录 一、使用方法 二、举例说明 三、常见的颜色及其对应的ANSI转义序列 一、使用方法 在Java中,可以使用ANSI转义序列来改变输出文本的颜色。 二、举例说明 (1&#xff…

Android UI自动化测试框架—SoloPi简介

1、UI自动化测试简介 软件测试简介 ​软件测试是伴随着软件开发一同诞生的,随着软件规模大型化,结构复杂化,软件测试也从最初的简单“调试”,发展到当今的自动化测试。 ​ 自动化测试是什么呢?自动化测试是把以人为…

Docker部署rabbitmq遇到的问题 Stats in management UI are disabled on this node

1. Stats in management UI are disabled on this node #进入rabbitmq容器 docker exec -it {rabbitmq容器名称或者id} /bin/bash#进入容器后,cd到以下路径 cd /etc/rabbitmq/conf.d/#修改 management_agent.disable_metrics_collector false echo management_age…

【iMessage苹果推?IM推送】群控脚本当Apple APNS推送服务器从您的应用程序接吸收注册消息时,它将为您回到一串devicetoken

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

设计模式之享元模式(Flyweight)的C++代码实现

1、享元模式提出 面向对象很好地解决了抽象问题,但是创建对象会带来一定的内存开销。绝大部分情况下,创建对象带来的内存开销是可以忽略不计的;在有些情况下是需要谨慎处理的,如类A的sizeof是50个字节,则创建50*1024*…

CSS实现左侧固定,右侧自适应(5种方法)

<div class"father"><!-- 左右div不能调换顺序来写 --><div class"left">固定宽度区</div><div class"right">自适应区</div> </div> 一、利用左侧浮动float右侧margin-left /* 利用浮动floatmargin…

2023年第四届全国人工智能大赛初赛晋级复赛名单公示

由深圳市科技创新委员会、鹏城实验室共同主办&#xff0c;新一代人工智能产业技术创新战略联盟&#xff08;AITISA&#xff09;承办&#xff0c;华为技术有限公司、中国工商银行股份有限公司深圳市分行、中国农业银行股份有限公司深圳市分行、中国建设银行股份有限公司深圳市分…

集合(map+set)

【数据结构1-3】集合 - 题单 - 洛谷 例题 P1551 亲戚 亲戚 - 洛谷 并查集 #include<bits/stdc.h> using namespace std; int n,m,q,f[10010],x,y,a,b; int find(int x)//找出x家的大佬 也就是二叉树的祖先节点 {if(f[x]x)//x是x的爸爸&#xff0c;简单的来说就是x没爸…

Apache JMeter:完全指南

Apache JMeter 是一款开源的性能测试工具&#xff0c;可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。 下载和安装 由于 JMeter 是使用 Java 开发的&#xff0c;因此在运行之前必须先安装 JDK。您可以在…

解读2023年上半年财报:净利润达11.08亿元,东鹏做对了什么?

“累了、困了&#xff0c;喝东鹏特饮”&#xff0c;这句朗朗上口的广告词是很多人对于功能性饮料的第一印象。而这句经典广告词背后的公司便是如今发展如日中天的东鹏饮料。近些年&#xff0c;东鹏饮料凭借快准狠的营销、推广打法&#xff0c;迅速在功能性饮料市场攻城略地&…

PS实现多个图片转化GIF动画

PS实现多个图片转化为GIF动画步骤 一、导入图片素材1.打开PS软件&#xff0c;点击 [文件] --- [脚本] ---[将文件载入堆栈]2.选择图片3.导入成功 二、打开时间轴1.点击[窗口]---[时间轴]2.选择创建帧动画3.创建帧动画 三、创建动画1.复制帧。2.设置帧的内容。3.修改图片停留的时…

Streamlit 讲解专栏(九):深入探索布局和容器

文章目录 1 前言2 st.sidebar - 在侧边栏增添交互元素2.1 将交互元素添加至侧边栏2.2 示例&#xff1a;在侧边栏添加选择框和单选按钮2.3 特殊元素的注意事项 3 st.columns - 并排布局多元素容器3.1 插入并排布局的容器3.2 嵌套限制 4 st.tabs - 以选项卡形式布局多元素容器4.1…

使用腾讯云轻量服务器Matomo应用模板建网站流量统计系统

腾讯云百科分享使用腾讯云轻量应用服务器Matomo应用模板搭建网站流量统计系统&#xff0c;Matomo 是一款开源的网站数据统计软件&#xff0c;可以用于跟踪、分析您的网站的流量&#xff0c;同时充分保障数据安全性、隐私性。该镜像基于 CentOS 7.6 64位操作系统&#xff0c;已预…

【C++】一文带你初识C++继承

食用指南&#xff1a;本文在有C基础的情况下食用更佳 &#x1f340;本文前置知识&#xff1a; C类 ♈️今日夜电波&#xff1a;napori—Vaundy 1:21 ━━━━━━️&#x1f49f;──────── 3:23 …

Weak Session IDs (弱会话)

Weak Session IDs (弱会话) 当用户登录后&#xff0c;在服务器就会创建一个会话(session)&#xff0c;叫做会话控制&#xff0c;接着访问页面的时候就不用登录&#xff0c;只需要携带Sesion去访问。 sessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该…

odoo-035 Pycharm git commit 提交提示 No changes detected

文章目录 问题查找解决其他&#xff1f; 问题 在 gitee 上面新建的 git 项目&#xff0c;dowanload 下来&#xff0c;在 Pycharm 中修改后发现改完就变成白色到了&#xff0c;不是绿色或蓝色的&#xff0c;然后 git commit 的时候提示 No changes detected。 查找 上面是在 …