当前位置: 首页 > news >正文

虚拟内存地址和物理内存地址?为什么我们程序里地址连续?为什么需要TLB Translation lookaside buffer

物理地址(实际在内存硬件里面的地址)是实在的存在于计算机中的一个实体,程序访问到了就可以直接修改,哪怕这个是分配给其他进程的。
虚拟地址(指令里用到的内存地址)并不真实存在于计算机中,每个进程都分配有自己的虚拟空间,而且只能访问自己被分配使用的空间。这样可以将程序做到内存隔离。

为什么我们程序里地址连续?
首先程序的占用的内存空间是连续的,因为执行的时候是程序计数器是顺序地一条一条指令执行的,所以指令必须放在一起。
所以就需要在物理内存上找一段连续的分给他,也就是通过物理内存分段进行映射,但是这样会导致物理内存上产生大量碎片。
所以就需要内存分页,将物理内存预先切成一段固定大小的空间,同时将程序需要的内存也切成固定的空间(页),这样在程序运行的时候将需要的页加载到物理内存即可。
由于程序拿到的都是虚拟内存,所以都是连续的,但是在实际物理内存上,页分配到物理内存的位置可能不同,在物理内存的地址根据实际情况不同,可能是分段连续的。

为什么需要TLB Translation lookaside buffer?
由于加入了页,会导致访问一个物理内存,需要多次查表,所以需要对内存映射的地址进行缓存(TLB),加速其访问到物理内存的速度。

TLB原理 - 知乎

虚拟内存和物理内存,虚拟地址和物理内存地址之间的映射机制 - codemelo - 博客园

虚拟地址空间和物理地址空间_打酱油的;的博客-CSDN博客_虚拟地址和物理地址

相关文章:

  • js高级属性
  • ISP和IAP介绍
  • 基于R语言、MATLAB、Python机器学习方法与案例分析
  • 基于php+MYSQL的旅游景点攻略的设计与实现毕业设计源码301216
  • 猿创征文|【Typescript入门】常用数据类型(2)
  • 上新啦!腾讯云云原生数据湖产品DLC 2.2.5版本发布,来看特性详解!
  • 【观察】赋能中小企业驶入成长“快车道”,华为云云商店背后的三重新价值...
  • TVM 学习指南(个人版)
  • pringboot+高考志愿填报信息管理系统 毕业设计-附源码251922S
  • python基于django的花卉种植技术交流系统
  • FastFlow(3)---有序FARM
  • Springboot餐饮点餐系统毕业设计源码301749
  • 借身份证给别人办理流量卡有风险吗?这些情况你必须要知道!
  • 概述LCR测试仪IM3536日本HIOKI日置IM3535 阻抗分析仪
  • qiankun微应用加载第三方js、sdk跨域报错
  • 【React系列】如何构建React应用程序
  • JS数组方法汇总
  • node 版本过低
  • Vue.js 移动端适配之 vw 解决方案
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 技术:超级实用的电脑小技巧
  • 如何设计一个微型分布式架构?
  • 入门到放弃node系列之Hello Word篇
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 学习HTTP相关知识笔记
  • 译有关态射的一切
  • 自制字幕遮挡器
  • 数据可视化之下发图实践
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #控制台大学课堂点名问题_课堂随机点名
  • #微信小程序(布局、渲染层基础知识)
  • #微信小程序:微信小程序常见的配置传旨
  • (2)Java 简介
  • (pojstep1.3.1)1017(构造法模拟)
  • (二)fiber的基本认识
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (力扣题库)跳跃游戏II(c++)
  • (利用IDEA+Maven)定制属于自己的jar包
  • (转) Android中ViewStub组件使用
  • (转)EOS中账户、钱包和密钥的关系
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net 后台导出excel ,word
  • .net分布式压力测试工具(Beetle.DT)
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @Transient注解
  • [ C++ ] STL---string类的使用指南
  • [ 转载 ] SharePoint 资料
  • [Android Studio 权威教程]断点调试和高级调试
  • [bzoj 3534][Sdoi2014] 重建
  • [C puzzle book] types
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [Docker]五.Docker中Dockerfile详解
  • [Enterprise Library]调用Enterprise Library时出现的错误事件之关闭办法