Memory 虚拟地址与物理地址

Memory 虚拟地址与物理地址,memory,virtual-memory,Memory,Virtual Memory,我对物理地址和虚拟地址的概念有点不确定。以下是我的理解: 已编译(exe)应用程序文件中指令的虚拟地址是固定的,当应用程序开始执行时,这些固定的虚拟地址将动态映射到内存中的物理地址,并更新相应的页表条目 有人能肯定我是对的还是错的吗 提前感谢虚拟地址是物理地址之上的抽象层。物理地址映射到ram芯片中的特定线路。但是,每个进程都有自己的虚拟地址空间。操作系统和硬件在加载/存储时将虚拟地址转换为物理地址 两个不同进程中的相同虚拟地址通常被转换为两个不同的物理内存位置。例如,您可以编写两个不同的程序,

我对物理地址和虚拟地址的概念有点不确定。以下是我的理解:

已编译(exe)应用程序文件中指令的虚拟地址是固定的,当应用程序开始执行时,这些固定的虚拟地址将动态映射到内存中的物理地址,并更新相应的页表条目

有人能肯定我是对的还是错的吗


提前感谢

虚拟地址是物理地址之上的抽象层。物理地址映射到ram芯片中的特定线路。但是,每个进程都有自己的虚拟地址空间。操作系统和硬件在加载/存储时将虚拟地址转换为物理地址

两个不同进程中的相同虚拟地址通常被转换为两个不同的物理内存位置。例如,您可以编写两个不同的程序,它们都在0x400000附近加载main

尽管64位虚拟地址空间非常大,可能包含所有正在执行的程序的所有代码和数据,但除非操作系统将其映射到多个进程中,否则无法在虚拟地址空间中找到另一个进程的代码和/或数据

共享库就是一个例子。它们被加载到内存中,操作系统将它们所在的物理内存映射到多个进程的虚拟地址空间中。另一个反例是IPC共享内存()

您提到的页表是操作系统用来将虚拟内存映射到物理内存的机制