`
yangping_Account
  • 浏览: 192849 次
  • 性别: 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,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。

机理  逻辑地址(或者称为虚拟地址)到线性地址是由CPU的段机制自动转换 的。如果没有开启分页管理,则线性地址就是物理地址。如果开启了分页管理,那么系统程序需要参与线性地址到物理地址的转换过程 。具体是通过设置页目录表和页表项进行的。

分享到:
评论

相关推荐

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

    线性地址也被称为虚拟地址,是经过段式和页式内存管理转换后,CPU能够直接处理的地址。在Intel的保护模式中,逻辑地址先转换为线性地址,然后再转换为物理地址。线性地址提供了一个连续的地址空间,使得每个进程都有...

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

    在探讨计算机内存管理的基础知识时,逻辑地址、线性地址和物理地址是三个核心概念。它们分别对应于不同的内存寻址和管理阶段,涉及CPU如何在硬件层面处理内存地址,以及操作系统如何管理这些地址以实现内存的保护和...

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

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

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

    线性地址是经过段式内存管理单元转换后的地址,它是页式内存管理单元输入的一部分。线性地址是虚拟地址的一种表现形式,在Intel x86架构中,它用于描述在分页机制之前的地址形式。线性地址最终会被转换为物理地址,...

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

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

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

    在段式管理中,逻辑地址必须经过两步转换才能成为物理地址:首先通过段式内存管理单元将逻辑地址转换为线性地址,然后再通过页式内存管理单元将其转换为最终的物理地址。 #### 四、线性地址(Linear Address) 线性...

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

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

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

    在现代操作系统中,线性地址通常对应于页式内存管理单元转换前的地址。线性地址被进程视为其自身的内存空间,CPU会进一步将其转换为物理地址以访问实际的内存。 CPU在处理内存地址时,会经历两个转换步骤:首先,...

    自己整理的linux内存管理子系统.pdf

    Linux 内存管理子系统 Linux 内存管理子系统是指计算机系统中管理内存资源的机制,该系统由硬件和软件... Linux 内存管理子系统的实现主要包括段式管理和页式管理两部分,并且需要虚拟地址空间和物理地址空间的转换。

    Linux内存管理笔记.doc

    地址转换是CPU将一个逻辑地址转换为物理地址的过程,需要两步:首先CPU利用段式内存管理单元,将逻辑地址转换成线性地址,在利用页式内存管理单元,把线性地址最终转换为物理地址。 二、段式管理 段式管理是一种...

    页式虚拟存储管理中地址转换和缺页中断

    地址转换和缺页中断是页式虚拟存储管理中的核心概念,对于理解计算机内存管理和程序执行至关重要。 首先,我们来看地址转换。在页式虚拟存储系统中,程序在执行时使用的是逻辑地址,这些地址是由操作系统分配的,...

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

    硬件中的页表用于存储每个逻辑页对应的物理页帧号,这样,处理器通过页表进行地址转换,将进程的逻辑地址转换为实际的物理地址。这个过程涉及到线性地址到物理地址的转换,通常由硬件的内存管理单元(MMU)执行。 ...

    WINDOWS页式内存管理.docx

    Windows的页式内存管理通过虚拟地址和物理地址的映射,实现了多任务环境下内存的有效管理和保护。理解这一机制,对于深入研究操作系统和解决内存相关问题具有重要意义。通过本文的介绍,希望能帮助读者理清页式内存...

    Linux Memory Address Mapping

    段式映射主要处理逻辑地址到线性地址的转换,而页式映射则负责线性地址到物理地址的转换。这种分层的映射机制为Linux提供了灵活的内存管理和高级特性,如内存保护、地址空间隔离以及动态内存分配。 **2. IA-32体系...

    Window s 中段页式内存管理硬件实现剖析

    描述符(Descriptor)是为了便于段页式管理而设置的,由 8 字节组成,每个任务的代码段、数据段、堆栈段、状态段以及每个局部描述符表(LDT)等都有一个描述符,它包含了该段内存空间的基地址(32 位)、段大小、段...

    Linux操作系统内存管理.pdf

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

    linux内核开发-内存管理

    内存管理中涉及三种主要类型的地址:物理地址、线性地址(也称为虚拟地址)和逻辑地址。 - **物理地址**:这是指CPU外部地址总线上实际传输的地址信号,用于直接访问物理内存。它是地址变换过程的最终结果。 - **...

Global site tag (gtag.js) - Google Analytics