发布网友 发布时间:2024-10-23 21:08
共1个回答
热心网友 时间:2024-11-02 00:34
在计算机中,一个程序能够产生的地址集合被称为地址范围,其大小由CPU的位数决定。比如,32位CPU的地址范围为0~0xFFFFFFFF(4GB),而64位CPU可达0~0xFFFFFFFFFFFFFFFF(16EB)。这个范围被称为虚拟地址空间,其中的每个地址称为虚拟地址。相对应的,物理地址空间和物理地址则是系统实际可访问的一部分,如32位x86主机,尽管有4GB的虚拟地址空间,但物理地址空间仅限于0x000000000~0x0FFFFFFF(256MB)。
在没有虚拟存储器的系统中,虚拟地址直接送往内存总线,实现对物理存储器的直接访问;而在采用虚拟存储器的设备中,虚拟地址首先通过存储器管理单元(MMU)处理,将虚拟地址映射为物理地址。这一过程是虚拟存储器的核心功能,确保了地址的抽象和管理。
许多系统采用分页机制来管理虚拟和物理地址。虚拟地址空间被划分为页,物理地址空间则对应为页帧,且页和页帧的大小需保持一致。例如,一台32位机器的虚拟地址空间为4GB,但只有256MB物理内存。这意味着它需要外部存储器(如磁盘或闪存)来存放整个程序,通过分页机制,将程序划分为大小为4KB的页,对应物理内存的64KB页帧。这种设计允许程序运行在大于物理内存容量的虚拟地址空间中,通过分页调度实现程序片段的动态加载。
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。