【操作系统-47】逻辑地址vs物理地址
逻辑地址(Logical Address)和物理地址(Physical Address)是计算机内存管理中两个重要的概念,它们代表了不同层次的内存地址。理解它们的区别对于掌握内存管理、操作系统以及虚拟内存的原理非常重要。
1. 定义与来源
- 逻辑地址:也称为虚拟地址,是程序在执行过程中由CPU生成的地址。程序员写代码时,使用的是逻辑地址。在虚拟内存系统中,逻辑地址并不直接对应实际的内存位置,而是通过操作系统的内存管理单元(MMU)映射到物理地址。
- 物理地址:是计算机系统中实际的内存地址,指向物理内存(RAM)中的某一位置。物理地址是硬件使用的地址,是内存芯片中数据存储的实际位置。
2. 地址映射
逻辑地址到物理地址的映射:在现代计算机中,尤其是使用虚拟内存的系统,程序访问的地址是逻辑地址,而这些地址需要通过内存单元(MMU)映射到物理地址。MMU使用一种叫做页表(Page Table)的数据结构来管理这个映射关系。
- 程序在运行时,CPU生成逻辑地址(虚拟地址)。
- MMU将虚拟地址转换为物理地址,物理地址对应的是实际的内存位置。
例子:如果程序需要访问一个变量,程序代码会使用虚拟地址来访问该变量。操作系统通过MMU将这个虚拟地址映射到实际的物理内存地址,访问数据时,内存控制器根据物理地址找到对应的内存单元。
3. 虚拟内存与物理内存
- 虚拟内存:虚拟内存是操作系统提供的一种机制,使得程序可以使用比实际物理内存更大的地址内存。操作系统通过虚拟内存技术,允许每个进程拥有自己的虚拟地址空间,每个进程的逻辑地址与其他进程的逻辑地址是独立的。虚拟内存使得程序的地址空间比实际物理内存要大,从而支持更多的程序并行运行,并提供内存保护。
- 物理内存:物理内存是计算机中的真实硬件内存单元,由物理地址表示。物理内存包括RAM(随机存取存储器)和ROM(只读存储器),他是存储程序数据、操作系统代码和缓存数据的地方。
4. 区别概述
| 特点 | 逻辑地址 | 物理地址 |
|---|---|---|
| 定义 | 程序在运行时使用的地址(虚拟地址)。 | 实际存储在内存中的地址。 |
| 生成来源 | 由程序在运行过程中生成。 | 由计算机硬件(内存管理单元)生成。 |
| 地址空间 | 每个进程都有独立的逻辑地址空间。 | 系统中所有进程共享同一个物理内存空间。 |
| 地址转换 | 通过内存管理单元(MMU)映射为物理地址。 | 直接对应内存芯片的实际位置。 |
| 存储类型 | 用于虚拟内存管理。 | 对应物理内存中的实际数据存储位置。 |
| 实例 | 程序访问内存时使用的地址。 | 内存芯片(RAM)中实际的存储位置。 |
5. 如何映射:页表与MMU
在支持虚拟内存的计算机系统中,逻辑地址与物理地址之间的映射通常通过分页机制来实现。分页机制将虚拟地址空间分为若干页(Page),而物理地址空间分为若干页框(Frame)。
逻辑地址:通常由两部分组成:
- 页码(Page Number):指明该地址所在的虚拟页码。
- 页内偏移(Offset):指明该地址在页面中的位置。
物理地址:也由两部分组成:
- 页框号(Frame Number):指明该地址所在的物理页面。
- 页内偏移(Offset):和逻辑地址中的偏移相同,表示该地址在页面中的具体位置。
操作系统通过页表维护虚拟页号到物理页框号的映射。当程序访问某个逻辑地址时,MMU会通过查找页表来获得对应的物理地址。
6. 地址转换的步骤
- 程序发生对内存的访问请求,使用逻辑地址。
- MMU将逻辑地址中的页号映射到物理地址的页框号。
- 物理地址页框号与偏移量结合,得到最终的物理地址。
- CPU通过物理地址访问内存。
7. 逻辑地址与物理地址的实际应用
- 内存保护:通过虚拟地址和物理地址的映射,操作系统可以确保每个进程只能访问自己的内存空间,防止不同进程之间的内存访问冲突。
- 进程隔离:每个进程都有自己的逻辑地址内存,使得操作系统能够在同一台机器上并行执行多个进程,而互不干扰。
- 内存共享:不同的进程可以通过共享内存区域来交换数据,操作系统会处理虚拟地址到物理地址的映射,确保内存的共享和保护。
总结
逻辑地址(虚拟地址)是程序执行时生成的地址,代表的是虚拟内存中的位置。
物理地址是实际硬件中的内存地址,代表的是RAM中的位置。
通过内存管理单元(MMU)和页表的映射机制,操作系统实现了虚拟内存的功能,允许程序使用比实际物理内存更大的地址空间,并提供内存保护与共享功能。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)