我猜,这个问题可能重复,但为了清楚起见,我是单独提出来的。
所以我理解的是,对于32位架构,我们有4 GB的虚拟内存,其中3 GB用于用户空间,1 GB用于内核空间。
所以我不明白的是,在用户空间进程和内核空间之间共享相同的1 GB物理内存,它是如何工作的?
如果问题不明确,请告诉我,我会尝试添加更多细节。
答案 0 :(得分:3)
所以我理解的是,对于32位架构,我们有4 GB的虚拟内存,其中3 GB用于用户空间,1 GB用于内核空间。
右。每个进程在虚拟内存中具有3GB的特定于进程的映射。内核的虚拟映射为1GB。
所以我不明白的是,在用户空间进程和内核空间之间共享相同的1 GB物理内存,它是如何工作的?
操作系统管理所有物理内存,根据需要将其映射到内核虚拟内存或用户虚拟内存。如果进程X需要在虚拟地址Z处映射的物理内存页Y,那么内核将确保在进程X运行时映射到位。