`
m635674608
  • 浏览: 5063175 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

操作系统--虚拟内存、逻辑地址、线性地址、物理地址

 
阅读更多
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。

 
线性地址(Linear Address) 逻辑地址到物理地址变换之间的中间层。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。

 
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。

 
虚拟内存(Virtual Memory) 是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限 内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任 务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的 任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。

 
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。

 
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。

 
虚拟地址到物理地址的转化方法是与体系结构相关的。一般来说有分段、分页两种方式。以现在的x86 cpu为例,分段分页都是支持的。Memory Mangement Unit负责从虚拟地址到物理地址的转化。逻辑地址是段标识+段内偏移量的形式,MMU通过查询段表,可以把逻辑地址转化为线性地址。如果cpu没有开启分页功能,那么线性地址就是物理地址;如果cpu开启了分页功能,MMU还需要查询页表来将线性地址转化为物理地址:
逻辑地址 ----(段表)---> 线性地址 — (页表)—> 物理地址
 
不同的逻辑地址可以映射到同一个线性地址上;不同的线性地址也可以映射到同一个物理地址上;所以是多对一的关系。另外,同一个线性地址,在发生换页以后,也可能被重新装载到另外一个物理地址上。所以这种多对一的映射关系也会随时间发生变化。
 
 
http://my.oschina.net/alphajay/blog/5025
分享到:
评论

相关推荐

    逻辑地址、线性地址、物理地址和虚拟地址

    b) 线性地址转换为物理地址:CPU的页表机制会将线性地址映射到实际的物理内存地址。 总的来说,这些地址类型的存在是为了提供一种灵活、安全且高效的内存管理方式,让程序员可以不必关心底层硬件的细节,同时使...

    驱动程序复习题20名词解释逻辑地址虚拟地址线性地址物理地址

    总的来说,理解逻辑地址、虚拟地址、线性地址和物理地址的区别以及它们在内存管理和操作系统中的作用,对于深入学习计算机系统和驱动开发至关重要。同时,了解内核模式和用户模式地址空间的差异,以及为何在驱动中...

    逻辑地址,线性地址及物理地址的区别

    线性地址,又称为虚拟地址或虚拟内存地址,在现代计算机架构中,逻辑地址到线性地址的转换通常是由硬件自动完成的。在分段机制中,段描述符提供段基址,逻辑地址中的段选择信息确定段描述符,加上偏移量构成线性地址...

    逻辑地址、线性地址、物理地址和虚拟地址的分析

    通过虚拟内存技术,操作系统可以将进程的虚拟地址映射到实际的物理地址上,从而实现内存的有效管理和利用。虚拟内存允许多个进程共享相同的地址空间,但它们被映射到不同的物理地址上。 **逻辑地址(Logical Address...

    物理地址逻辑地址虚拟地址的概念

    现代操作系统通过引入虚拟内存技术,使得进程能够使用比实际物理内存大得多的地址空间。进程使用虚拟地址,操作系统通过硬件支持将其“转换”成实际的物理地址。这一转换机制是实现虚拟内存的关键。 虚拟地址的主要...

    分页存储--逻辑地址转物理地址练习题

    分页存储是一种内存管理技术,它将...通过这些步骤和示例,我们可以理解分页存储系统中逻辑地址如何转换为物理地址,并了解这种转换在内存管理中的关键作用。在实际操作中,掌握这些知识点对于理解和解决问题至关重要。

    物理地址逻辑地址虚拟地址的概念.doc

    本文档主要探讨了三种类型的内存地址:物理地址、逻辑地址和虚拟地址,这些都是理解和编程高级操作系统时不可或缺的基础知识。 物理地址(Physical Address)是硬件层面的地址,对应于实际内存芯片中的存储单元。它...

    逻辑地址&线性地址&物理地址.docx

    本文主要探讨了逻辑地址、线性地址以及物理地址这三种不同的内存地址类型,并结合虚拟内存的概念进行深入阐述。 首先,逻辑地址(Logical Address)是程序在执行时使用的地址,它反映了程序相对于其所属段的偏移...

    Linux操作系统内存管理.pdf

    Linux操作系统通过段机制把逻辑地址转换为虚拟地址(就是线性地址),再通过页机制把虚拟地址转换为物理地址。 最后,需要注意的是,Linux操作系统的内存管理机制中,高端内存是DDR减去896MB后多出来的那一段。虚拟...

    ch09-1 虚拟内存-概念1

    【虚拟内存】是现代计算机系统中内存管理的重要机制,它将物理内存与程序的逻辑地址空间隔离开来,使得每个进程都有自己独立的、连续的地址空间,即虚拟地址空间。虚拟内存的概念由郑贵滨教授在哈尔滨工业大学计算机...

    操作系统-20160406-期中解析1

    总的来说,这些内容涵盖了操作系统中的一些基本概念,如进程管理(进程状态转换)、内存管理(页表、页面替换算法、Buddy System)以及虚拟内存(虚拟地址到物理地址的转换)。这些知识点对于理解和设计操作系统至关...

    Linux虚拟内存管理基础v2.ppt

    - **地址映射**:每个进程都有自己的虚拟地址空间,这些地址与物理内存地址不直接对应。通过页表进行地址转换,页表记录了虚拟地址到物理地址的映射关系。 - **分页机制**:Linux使用分页技术将内存分割成固定大小...

    第9章 L1虚拟内存-概念 new1

    虚拟内存是现代操作系统中不可或缺的一部分,它为进程提供了一种抽象的内存模型,使得每个进程都认为自己拥有独立的、连续的内存空间,即使实际的物理内存可能分散且有限。虚拟内存的主要功能包括地址空间管理、内存...

    操作系统课程设计--连续动态分区内存管理模拟实现.doc

    ### 操作系统课程设计——连续动态分区内存管理模拟实现 #### 一、引言 在计算机科学领域,操作系统作为连接硬件与应用软件的重要桥梁,其核心任务之一就是有效地管理和调度计算机系统的资源,特别是内存资源。...

    嵌入式操作系统:第6章 嵌入式Linux的内存管理.ppt

    虚拟内存提供了一种方式,使得进程可以独立于物理内存地址工作,提高安全性并简化内存分配。 - 在没有MMU的系统中,内存管理通常是实模式,程序直接访问物理地址,可能导致内存保护不足,但这种简化方式有助于提高...

    操作系统 实验 模拟分页式虚拟存储管理中硬件的地址转换和缺页中断

    在本实验中,我们将深入探讨操作系统中的分页式虚拟存储管理,包括硬件的地址转换机制和缺页中断的处理,以及如何应用先进先出(FIFO)页面调度算法来解决这些问题。此外,我们还将实践构建一个简单的文件系统,以便...

    Linux中的物理和虚拟存储空间布局

    子进程共享(继承)父进程的用户空间,指的是使用与父进程相同的用户线性地址到物理内存地址的映射关系,并不是共享父进程的用户空间数据。 4. **内核逻辑地址空间**:从`PAGE_OFFSET`到`high_memory`之间的线性...

    5.地址映射与共享1

    操作系统中的地址映射与共享是实现高效内存管理的关键技术,主要涉及到段式、页式内存管理,以及逻辑地址、线性地址、物理地址之间的转换。在IA-32架构的Linux 0.11系统中,这些概念尤为重要。 1. **地址映射**: ...

Global site tag (gtag.js) - Google Analytics