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

一、虚拟地址与物理地址的区别: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, ZLW的头像Z, ZLW
上一篇 2023年3月26日
下一篇 2023年3月28日

相关推荐

  • 项目管理培训内容有哪些类型

    项目管理培训内容主要包括:基础知识培训、项目规划与控制培训、风险管理培训、质量管理培训、团队管理与领导力培训等。其中,基础知识培训是培训的起点,它主要涵盖项目管理的定义、项目生命周期、项目管理过程等关键概念,让参与者对项目管理有一个全面的理解。 一、基础知识培训 基础知识培训是项目管理培训的基石,主…

    2024年7月24日
    1000
  • bim项目管理平台有哪些内容

    BIM项目管理平台包含的内容主要有:项目管理模块、模型管理模块、协作与沟通模块、任务管理模块、文件管理模块、质量安全模块等。其中,项目管理模块是最核心的部分,它主要负责对项目整体进度的管理,包括项目计划、项目进度、项目成本、项目风险等方面的管理。该模块通常包含了项目信息管理、项目进度管理、项目成本管…

    2024年7月24日
    500
  • 旅游局管理哪些行业项目

    旅游局是一个专门负责管理和监管旅游活动的政府机构,主要负责的行业项目包括:旅游资源开发、旅游景区管理、旅游市场营销、旅游服务质量监管、旅游政策制定、旅游企业管理、旅游行业统计数据收集与分析、旅游规划与建设、旅游文化推广等。其中,旅游资源开发是旅游局的重要职责之一,它涉及到对旅游资源的勘查、评价、利用…

    2024年7月24日
    400
  • 项目管理的职业证书有哪些

    在项目管理领域,各种职业证书层出不穷,但以下几种证书是最为知名和公认的:PMP(项目管理专业人士)、PRINCE2(项目内控环境)、CAPM(认证项目管理师)、MSP(管理成功的项目)、ACP(敏捷认证专家)和CSM(认证Scrum Master)。各种证书的培训和取得,对从事项目管理工作的人来说,…

    2024年7月24日
    300
  • 项目管理的关键点有哪些

    项目管理的关键点包括:明确目标、制定详细计划、有效沟通、风险管理、资源分配、进度监控、质量控制、变更管理。明确目标是项目管理的基础,确保项目的所有参与者都了解并认同项目的最终目标,这是项目成功的第一步。明确目标不仅要清晰具体,还需可衡量、可实现、有时间限制和相关性。制定详细计划则是根据项目目标,分解…

    2024年7月24日
    300

发表回复

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

400-800-1024

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

分享本页
返回顶部