
I know the virtual memory separates 2G(for kernel)/2G(for user) in Windo
Are you confusing physical addresses and virtual addresses? It's ok for two processes to access the same virtual address, because each process see its own virtual memory space. On the other hand, all processes share the same physical memory space in the machine, so each process will have that same virtual address mapped to a different physical address (assuming there is no shared memory).