Hi! On 22:19 Fri 10 Sep , Sri Ram Vemulpali wrote: > Hi all, > > I have a question on MMU. Memory management is used to segregate the > memory between process and make sure no process steps on each other. Also, > it provides abstraction to whole available memory in a conceptual way called > virtual address. > Now my question is, we can do all this in software, I mean simulate and map > the virtual address to physical address not taking hardware support. Now why > is the hardware unit MMU is given with processor. Is there any special > reason. Please clarify. Thanks. Virtual memory is *not* a software feature. It is a hardware feature which may used by operating systems as a base to implement safety and security features and some other stuff like swapping, mmap(), fork() and so on. The hardware implementation works by providing (among others) a register "cr3" which contains the address of the page translation table. When a process accesses a memory region, the processor will look the translation up in the table and do the mapping by itself. For performance reasons, the translations are cached in the translation lookaside buffer (TLB). Emulating an MMU in software would be very slow. Even many "emulators" do not do this by, but run the emulated code natively with the help of the hardware MMU. -Michi -- programing a layer 3+4 network protocol for mesh networks see http://michaelblizek.twilightparadox.com -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ