物理地址、虚拟地址

(1)物理地址

CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中内存的,但也常被映射到其他存储器上(如显存、bios等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。

(2)总线地址

总线的地址线或在地址周期上产生的信号。外设使用的是地址总线,cpu使用的是物理地址。

物理地址和总线地址之间的关系有系统设计决定的。在X86平台上,物理地址就是总线地址,这是因为它们共享相同的地址空间。在其他平台上,可能需要转换/映射。

(3)虚拟地址

现代操作系统普遍采用虚拟内存管理(virtual memory management)机制,这需要MMU的支持。MMU通常是CPU的一部分,如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(物理内存)接收,这成为物理地址,如果处理器启用了MMU,CPU执行单元发出的内存地址将被MMU截获,从CPU到MMU的地址称为虚拟地址,而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是讲虚拟地址映射成物理地址。

      linux中,进程的4GB内存分为用户空间和内核空间。用户空间分布为1~3GB剩下的1GB为内核空间。程序员只能使用虚拟地址。系统中每个进程有各自的私有用户控件(0~3GB),这个空间对系统中的其他进程是不可见的。

编址方式

内存管理是指操作系统对计算机内存资源进行有效利用和管理的过程。在内存管理中,存在着物理地址虚拟地址、逻辑地址和UNC(统一编号字符集)等概念。 物理地址是指计算机内存中的实际物理位置,它是由计算机硬件直接管理的,用来标志内存中存储单元的位置。通过物理地址,操作系统可以直接访问内存中的数据。 虚拟地址是在逻辑地址物理地址之间的中间层,它是由操作系统通过地址映射技术生成的。虚拟地址空间将内存分为若干个拟页面,每个拟页面与物理页面一一对应。在程序运行时,操作系统根据需要将拟页面映射到物理页面,进而实现对内存的访问。 逻辑地址是程序中使用的地址,它是相对地址,相对于程序的起始位置。逻辑地址通常是由编译器或连接器进行生成和管理的,它们会根据程序的需要分配逻辑地址空间,并将逻辑地址映射到虚拟地址物理地址。 UNC(统一编号字符集)是一种用于标识计算机网络资源的命名方式。UNC地址是由多个部分组成的,包括计算机名称、共享资源名称和文件/文件夹路径。UNC地址不直接与内存管理相关,而是用于网络中对计算机资源进行唯一标识和访问。 总之,内存管理是操作系统对计算机内存进行有效利用和管理的过程,其中物理地址虚拟地址、逻辑地址和UNC等概念在内存管理中扮演不同的角色,分别用于标志内存中存储单元的位置、实现地址映射和唯一标识计算机网络资源等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值