逻辑地址 (Logical Address)
是指由程序产生的与段相关的偏移地址部分。
例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,与绝对物理地址无关。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址 (Linear Address)
是逻辑地址到物理地址变换之间的中间层。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address)
是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存 (Virtual Memory)
是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。
逻辑地址与物理地址的“差距”是0xC0000000,是由于逻辑地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。
逻辑地址到物理地址的转换
逻辑地址到物理地址的转化方法是与体系结构相关的。一般来说有分段、分页两种方式。
以现在的x86 cpu为例,分段分页都是支持的。Memory Mangement Unit负责从逻辑地址到物理地址的转化。逻辑地址是段标识+段内偏移量的形式,MMU通过查询段表,可以把逻辑地址转化为线性地址。如果cpu没有开启分页功能,那么线性地址就是物理地址;如果cpu开启了分页功能,MMU还需要查询页表来将线性地址转化为物理地址:
逻辑地址 ----(段表)---> 线性地址 — (页表)—> 物理地址
不同的逻辑地址可以映射到同一个线性地址上;不同的线性地址也可以映射到同一个物理地址上;所以是多对一的关系。另外,同一个线性地址,在发生换页以后,也可能被重新装载到另外一个物理地址上。所以这种多对一的映射关系也会随时间发生变化。
原文地址:http://my.oschina.net/alphajay/blog/5025
分享到:
相关推荐
逻辑IO与物理IO的主要区别在于对IO端口的处理方式。在一些体系结构中,例如PowerPC、m68k等,IO端口被映射到内存空间中,称为内存映射方式,CPU可以直接使用内存访问指令与这些端口交互。这种方式简化了CPU与外设的...
- **计算物理地址**:找到对应的帧号后,与页内偏移量组合形成物理地址。物理地址的计算公式通常为:`帧号 * 页面大小 + 页内偏移量`。 3. **实例分析**: - 在给定的例子中,逻辑地址2F6AH(16进制)转换为物理...
逻辑地址与物理地址的差距,如0xC0000000,是由操作系统的内存管理和映射策略决定的。 总结来说,逻辑地址是程序视角下的地址,线性地址是转换过程中的桥梁,物理地址是硬件实际访问的地址。虚拟内存则提供了一种...
本文将深入探讨逻辑地址、线性地址、物理地址和虚拟地址这四个关键的内存管理概念。 1. 物理地址(Physical Address) 物理地址是内存芯片级别单元寻址的实际地址,与CPU的地址总线直接关联。它代表了内存中的实际...
因此,物理地址更准确的说法是与地址总线对应的地址。 **虚拟内存(Virtual Memory):** 虚拟内存是操作系统为进程提供的一个抽象模型,它使得进程能够使用比实际物理内存大得多的地址空间。通过虚拟内存技术,操作...
因此,称物理地址“与地址总线相对应”更为准确。尽管如此,在大多数情况下,将物理地址视为直接映射到物理内存上的地址也是可以接受的简化方式。 #### 二、虚拟地址(Virtual Address) 虚拟地址是对整个内存的一种...
在现代计算机系统中,内存管理是一项关键任务,涉及到物理地址与逻辑地址的转换,以及线程同步等概念。下面将详细阐述这些知识点。 1. 物理地址与逻辑地址转换: 在计算机系统中,内存分为两种地址:物理地址和...
当一个逻辑地址要被访问时,CPU使用段选择子从描述符表中检索出相应的段描述符,然后将段的基地址与逻辑地址中的偏移量相加得到线性地址。 在x86架构中,逻辑地址到线性地址的转换涉及到段机制。逻辑地址由段寄存器...
3. 线性地址:在线性地址系统中,逻辑地址与段基址相加得到线性地址,它是虚拟地址到物理地址转换的中间步骤。在80386保护模式下,线性地址是32位,可以寻址4GB空间。如果启用分页机制,线性地址会进一步转换为物理...
本文档主要探讨了三种类型的内存地址:物理地址、逻辑地址和虚拟地址,这些都是理解和编程高级操作系统时不可或缺的基础知识。 物理地址(Physical Address)是硬件层面的地址,对应于实际内存芯片中的存储单元。它...
Freescale S12 逻辑地址转为物理地址
操作系中分页式管理总的逻辑地址到物理地址的映射转换算法 C语言
我理解的逻辑地址、线性地址、物理地址和虚拟地址(补充完整了)
在不同的架构设计方法中出现的软件... 图1 区分物理视角与逻辑视角同样,在软件架构设计过程中,也可以通过区分软件的逻辑架构和物理架构,分别从不同的角度设计和描述软件架构。所谓软件架构视图,是指设计和看待
概念模型、逻辑模型、物理模型在数据库设计中的区别 数据库设计是软件开发过程中一个重要的步骤,它涉及到数据存储、数据结构和数据关系的设计。为了更好地进行数据库设计,我们需要了解概念模型、逻辑模型和物理...
本篇文章将探讨逻辑地址与物理地址的概念、页式存储管理和地址映射。 1. 逻辑地址与物理地址 逻辑地址是指程序在执行时使用的地址,它由程序员在编写程序时指定,反映了程序在虚拟内存空间中的位置。物理地址则是...
在数据库领域,主要存在三种模型:概念模型、逻辑模型和物理模型,每种模型都有其独特的用途和特点。 1. 概念模型(Conceptual Model): 概念模型,也称为信息模型,是数据库设计的起点,它以用户或业务的角度来...
网络地址是标识网络中设备位置的关键,如同我们熟知的家庭住址,它有物理地址和逻辑地址两种类型。物理地址,即网卡MAC地址,因制造商不同而各不相同,不具备统一格式。逻辑地址则是IP地址,它在IP协议层提供了一种...