虚拟地址是特定于进程的吗?
Is virtual address process-specific?
我一直在研究内存管理相关的课题。不知我是否理解正确:
- 指针(虚拟)地址是特定于进程的
- 不同的进程可以有相同地址的指针,但这些指针会被翻译成不同的物理地址
我对这些说法是否正确?如果是,它们是否适用于架构 x86、x86-64 和 ARMv7、ARMv8?
嗯,除了:
different processes can have pointers with same addresses, but these pointers get translated to different physical addresses
虽然这是一般情况,当然不同的进程可以共享映射页面(查看共享内存)然后指针可以 指向相同的数据,假设页面映射到虚拟地址 space.
中的相同位置
但是,是的,这是正确的理解。
我一直在研究内存管理相关的课题。不知我是否理解正确:
- 指针(虚拟)地址是特定于进程的
- 不同的进程可以有相同地址的指针,但这些指针会被翻译成不同的物理地址
我对这些说法是否正确?如果是,它们是否适用于架构 x86、x86-64 和 ARMv7、ARMv8?
嗯,除了:
different processes can have pointers with same addresses, but these pointers get translated to different physical addresses
虽然这是一般情况,当然不同的进程可以共享映射页面(查看共享内存)然后指针可以 指向相同的数据,假设页面映射到虚拟地址 space.
中的相同位置但是,是的,这是正确的理解。