逻辑地址和物理地址的区别是什么?
物理地址是内存的实际地址,如RAM,虚拟地址只是缓存和RAM之间的逻辑地址映射。在操作系统中,每当我们谈论代码或其部分的地址或地址空间时,我们指的是该部分代码所在的内存位置。让我们通过一个现实生活中的异常来了解操作系统中的寻址。
逻辑地址和物理地址的特点
当我们谈论逻辑地址时,我们指的是CPU分配给每个进程的地址,正如我们已经讨论过的,一个进程在内存中所处的实际地址与进程认为它所处的地址是不一样的,这种地址映射基本上是在进程共享内存时所必需的,而不需要让进程知道它们彼此共享相同的内存空间。
物理地址是进程及其内容放置在主内存或硬盘中的地址,每当我们运行一个进程或将一些数据存储在计算机的主存储设备或辅助存储设备中时,我们总是将其存储起来以备将来随时访问。比如我在电脑的D盘存了一个word文件,我想访问它,以后怎么访问,当然是去D盘打开word文件。
但是如果我将一个进程保存在主存中的某个存储单元或内存单元中,并希望将来访问它,该怎么办,就我们在本教程中研究过的地址而言,我们知道每当一个进程被创建时,CPU 都会生成它的虚拟地址,但又是一团糟。虚拟地址与进程实际放置在内存中的地址不同。
然而,内存单元存储在由物理地址(用户未知)访问的主内存中,我们所知道的只是进程的逻辑地址,那么当我们需要访问进程的时候我们将如何访问物理地址呢,到目前为止,这似乎是不可能的,但这当然不是因为我们从计算机诞生到现在一直在访问创建的进程。
因此,我们需要详细讨论这个问题,在进程创建时,CPU 不仅会生成虚拟地址,还会使用一些硬件支持将(先前生成的)虚拟地址映射到实际存储它的物理地址,这在下面的地址映射部分进行了讨论。
因此,当我们尝试访问内存中已经保存的进程时,CPU 将虚拟地址返回给硬件,硬件将虚拟/逻辑地址映射到物理地址上,并间接访问进程的内存空间。
2024-10-17 广告