虚拟地址与物理地址的区别与联系是什么

一、虚拟地址与物理地址的区别:1、定义不同;2、位置不同;3、访问不同;4、地址空间不同。定义不同是指,CPU 在程序运行时生成虚拟地址,而物理地址是内存中的一个位置。二、虚拟地址与物理地址的联系:通过地址绑定,虚拟地址可以映射到物理地址。

一、虚拟地址与物理地址的区别

1、定义不同

虚拟地址:CPU 在程序运行时生成虚拟地址。

物理地址:物理地址是内存中的一个位置。

2、位置不同

虚拟地址:虚拟地址在内存中不存在物理存在。

物理地址:物理地址是内存单元中的一个位置。

3、访问不同

虚拟地址:虚拟地址用作访问物理地址的引用。

物理地址:无法直接访问物理地址。

4、地址空间不同

虚拟地址:CPU 生成的有关程序的所有虚拟地址的集合称为虚拟地址空间。

物理地址:映射到虚拟地址的所有物理地址称为物理地址空间。

二、虚拟地址与物理地址的联系

虚拟地址可以映射到物理地址。内存由大型数组地址组成。CPU 负责从程序计数器获取指令地址。这些指令可能会导致加载或存储到特定内存地址。

地址绑定是从地址空间映射到另一个地址空间的过程。逻辑地址由 CPU 在执行期间生成,而物理地址是指物理内存单元(加载到内存中的位置)中的位置。请注意,用户仅处理逻辑地址。MMU 转换逻辑地址。此过程的输出是RAM中数据的适当物理地址。地址绑定可以通过三种不同的方式完成:

  1. 编译时:如果您知道进程在编译时将驻留在内存中的位置,则可以生成绝对地址。也就是说,在编译过程中,在程序可执行文件中生成一个物理地址。将这样的可执行文件加载到内存中非常快。但是,如果另一个进程占用生成的地址空间,则程序崩溃,并且需要重新编译该程序以使用虚拟地址空间。
  2. 加载时间:如果在编译时不知道进程将驻留的位置,则将生成重新定位的地址。加载程序将重新定位的地址转换为绝对地址。主内存中进程的基址由加载器添加到所有逻辑地址以生成绝对地址。如果进程的基址发生更改,则需要再次重新加载进程。
  3. 执行时间:指令已经加载到内存中并由 CPU 处理。此时可以分配或重新分配额外的内存。如果进程可以在执行期间从一个内存移动到另一个内存(在加载或运行时完成动态链接),则使用此过程。

三、虚拟地址简介

虚拟地址又叫虚拟内存,虚拟内存是内存管理的一种方式, 它在磁盘上划分出一块空间由操作系统管理,当物理内存耗尽是充当物理内存来使用。它将多个物理内存碎片和部分磁盘空间重定义为连续的地址空间,以此让程序认为自己拥有连续可用的内存。当物理内存不足时,操作系统会将处于不活动状态的程序以及它们的数据全部交换到磁盘上来释放物理内存,以供其它程序使用。

虚拟地址的相关知识:

  1. 创建一个进程时,操作系统会为该进程分配一个 4GB 大小的虚拟进程地址空间。之所以是 4GB ,是因为在 32 位的操作系统中,一个指针长度是 4 字节,而 4 字节指针的寻址能力是从 0x00000000~0xFFFFFFFF ,最大值 0xFFFFFFFF 表示的即为 4GB 大小的容量。
  2. 每个进程只能访问自己虚拟地址空间中的数据,无法访问别的进程中的数据,通过这种方法实现了进程间的地址隔离。
  3. 4GB 的虚拟地址被分成了 4 部分: NULL 指针区、用户区、 64KB 禁入区、内核区。应用程序能使用的只是用户区而已,大约 2GB 左右 ( 最大可以调整到 3GB) 。内核区为 2GB ,内核区保存的是系统线程调度、内存管理、设备驱动等数据,这部分数据供所有的进程共享,但应用程序是不能直接访问的。
  4. 目前PC上页面大小为4K,程序运行到哪页就为哪页分配内存,并建立虚拟地址空间页和刚刚建立的物理内存页间的映射。
  5. 一个PE是一些编译好的数据和指令的集合,也被分为很多页。4G的地址空间并非真正创建,只是创建虚拟地址空间到物理地址空间映射的页表。
  6. PE文件中所有的段会一一映射到虚拟地址空间中相应的页。
  7. 当CPU访问某一个虚拟地址时,发现该地址并没有相关联的物理地址时,产生一个缺页错误,于是CPU将控制权交回OS,OS为该页面映射物理内存。
  8. 当CPU要访问的数据在内存中时,可以直接访问。当CPU要访问的数据不再内存中,而位于页交换文件中,OS会在内存中找到一个闲置的页面,如果找不到闲置的页面,先释放一个已分配的页面。
  9. 页交换文件的左右时物理内存不够时,将部分数据从内存中移到页交换文件中,否则要释放物理内存,删除页面映射关系。

四、物理地址简介

网卡物理地址存储器中存储单元对应实际地址称物理地址,与逻辑地址相对应。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

它定义了数据帧怎样在介质上进行传输。在共享同一个带宽的链路中,对连接介质的访问是“先来先服务”的。物理寻址在此处被定义,逻辑拓扑(信号通过物理拓扑的路径)也在此处被定义。线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这一子层实现。

延伸阅读

MMU是什么

MMU是Memory Management Unit的缩写,中文名是内存管理单元,有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换(bank switching,尤其是在8位的系统上)。

文章标题:虚拟地址与物理地址的区别与联系是什么,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/47889

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年3月26日
下一篇 2023年3月28日

相关推荐

  • Python的list[int]是什么意思

    list[int]表示一种特殊的list,它只能包含整数类型的元素。在Python中,list是一种非常重要的数据类型。它是一种可变序列类型,可以包含任意数量的元素,这些元素可以是不同类型的数据,包括整数、浮点数、字符串、元组、列表等等。 在Python中,list是一种非常重要的数据类型。它是一种…

    2023年2月28日
    2.1K00
  • 手机APP开发有哪些注意事项

    应该注意:一、注重用户体验感;二、app功能具有针对性;三、开发定制app时注意考虑手机的兼容性;四、使用环境具有安全性;五、信息快速推送。在进行app定制开发的时候不仅要迎合市场需求更要注重用户体验,毕竟app推出的最终目的是吸引客户,创造收入。 一、注重用户体验感 现在众多企业纷纷开始推出自己的…

    2023年5月28日
    43500
  • 研发团队如何有效管理远程工作

    摘要:研发团队有效管理远程工作需采用一系列结构化策略,确保流程效率和产品质量。1、建立明确的沟通渠道;2、使用合适的协作工具;3、制定清晰的工作流程;4、加强项目管理;5、注重团队建设;6、实施定期的远程培训;7、确保安全和合规性;8、设定明确的目标及期望;9、维护工作和生活的平衡。建立明确的沟通渠…

    2023年11月30日
    24800
  • vscode为什么c 不能编译

    Visual Studio Code (VSCode) 无法编译C语言代码通常是由于环境没有正确配置、编译器未安装或路径未设置正确。具体来说,可能的原因包括缺少C语言编译器(如GCC)、环境变量未设置、不正确的任务配置文件(task.json)、以及缺少代码编辑辅助插件(如C/C++ for Vis…

    2024年4月3日
    9800
  • 为什么谷歌打不开vscode

    由于制作一篇4000字的详细文章远远超出了我的即时生成限制,我将展示一个针对您的请求的缩短版示范,介绍文章的结构和内容撰写方法。 无法在谷歌上打开Visual Studio Code(VSCode)通常是受多种因素影响的结果,这里概括了几个关键原因:网络问题、浏览器兼容性问题、VSCode在线版本的…

    2024年4月3日
    6800
  • oa电子期刊有哪些

    OA电子期刊典型特征有:开放获取、无需付费即可阅读、便于研究交流与引用。具体例子有:PLOS ONE、BioMed Central、Frontiers、SpringerOpen等。其中,PLOS ONE拓展了跨学科论文的公开出版,允许作者迅速且广泛地分享他们的科研成果。 此时,PLOS ONE值得详…

    2024年1月11日
    39700
  • 敏捷工具有哪些

    敏捷工具有:一、Jira;二、Trello;三、Asana;四、Slack;五、Microsoft Teams;六、Git;七、SVN;八、Selenium;九、Jenkins;十、Travis CI。Jira 是一款由 Atlassian 公司开发的项目管理工具。它支持敏捷开发和其他项目管理方法,…

    2023年3月31日
    58800
  • 项目管理软件管理

    项目管理软件是实施项目管理过程中的关键工具,提供规划、组织、管理资源的功能,帮助团队达成预定目标。1、项目管理软件协助规划项目;2、优化资源分配;3、提升团队协作;4、简化沟通流程;5、有效追踪项目进度;6、灵活适应变更管理。特别是第六点,它通过动态反馈机制和实时更新,帮助项目经理监控项目的变更请求…

    2024年1月10日
    16200
  • 阿里云数据库这样的云数据库是如何实现的

    云数据库是一种运行在云端的数据库服务,它实现了数据存储的云化,使得用户无需关心数据库的物理部署和维护工作。阿里云数据库为用户提供了诸多强大的服务特性,包括高可用性、备份恢复、自动扩容、安全防护等。 一、云数据库的基本概念 云数据库是一种运行在云端的数据库服务,它实现了数据存储的云化,使得用户无需关心…

    2023年7月31日
    51500
  • 敏捷看板需要对需求拆分任务吗

    敏捷看板需要对需求拆分任务。需求拆分是敏捷过程中有一个最重要的部分,拆分需求的好处包括:一、更方便安排工作;二、及时发现风险;三、更快获得反馈;四、发现问题更及时修复;五、便于优先级的排列;六、节约估算时间,提高估算准确度;七、提高信用度。 一、更方便安排工作 如果每个需求能拆分到足够小,可以有效防…

    2023年4月16日
    30100

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部