This question is aimed at any OS using a VAS model, but I'm going to specify windows nt, since that's the system I know best.
As we all know, by default, processes on 32 bit windows get 2 GB of memory all by itself. This memory can be located in system memory, a swap file, an usb drive etc.
This means that several processes can have allocated memory at address 0x12345678, however it's of course not possible that this maps to the same physical memory.
My question is, how is this done without totally crushing performance? Do processors have some kind of mechanism to map memory addresses?
Asking the OS to do a map lookup every time we wan't to access memory, just seem so, slow..