
在计算机系统中,逻辑地址(Logical Address)是CPU生成的地址,用于在虚拟地址空间中引用内存单元。在形成逻辑地址的过程中,主要分为以下几个阶段:
1. 编译时:
- 程序员编写的程序经过编译过程,转换为可执行文件。在编译时,编译器会为每个变量和函数分配逻辑地址。这些地址是虚拟的,不直接对应于物理内存的地址。
2. 加载时:
- 当程序加载到内存中运行时,操作系统的内存管理单元(MMU)负责将逻辑地址映射到物理地址。MMU维护着一个页表,用于存储逻辑地址到物理地址的映射关系。
3. 运行期间:
- 在程序运行期间,CPU生成的逻辑地址会通过MMU翻译成物理地址,从而访问到实际的物理内存。在分页系统中,每个进程都有独立的虚拟地址空间,逻辑地址在不同进程之间可能相同,但映射到的物理地址是不同的。
4. 页表查询:
- 当CPU生成一个逻辑地址时,MMU会查询页表,以找到对应的物理地址。如果页表命中,则直接将逻辑地址映射到物理地址。如果页表未命中,则会触发缺页异常,操作系统会处理这个异常,将所需的页面加载到物理内存,然后重新执行失败的指令。
通过以上过程,逻辑地址被转换为物理地址,从而实现程序的运行和内存管理。
形成逻辑地址阶段是指按数据的逻辑块号给出的磁盘的位置(l块=512字l字=64位)而物理地址则是由磁盘的柱面、头、段等物理位置所确定的地址。
2、这样该存储单元的地址就可以用段基址(段地址)和段内偏移量(偏移地址)来表示,段基址确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表示方式称为逻辑地址,通常表示为段地址:偏移地址的形式。