Just to bounce off Vishal here, I think virtual memory is also useful if you want to "virtualize" a system or process. For instance, you want to run a couple operating systems on the same hardware. Virtual memory would provide a nice layer between those systems and the hardware. In other words, you wouldn't need to statically allocate memory to the two systems. Instead, you'd give the illusion that both system would have access to all the memory through virtual memory.
Just to bounce off Vishal here, I think virtual memory is also useful if you want to "virtualize" a system or process. For instance, you want to run a couple operating systems on the same hardware. Virtual memory would provide a nice layer between those systems and the hardware. In other words, you wouldn't need to statically allocate memory to the two systems. Instead, you'd give the illusion that both system would have access to all the memory through virtual memory.
Yes jeremy...!
Infact, modern days SoC has special hardware for virtual memory management & system virtualizer.
Recently i have worked on one in my office.