On Monday 04 September 2006 06:28, pandari kashyap wrote: > Thank you for your reply. So are you telling me that user mode processes (A > and B) have the same set of possible linear address spaces ( 0 to 4GB). For > example more realistically A has address space beginning at address 24 and > ending at address 124 and B also has address space beginning at 24 and > ending at 124. > > Let us say that A and B are 2 completely different processes. When either A > or B accesses, for example, address 30 then how does kernel resolve it to > the correct physical address?. > > Because all the kernel has, at this point in time, is linear address 30 and > nothing else? Can you explain more? I appreciate your help > Each process has a set of page tables which translates the virtual address to a physical address. Whenever the process changes, the correct page tables for the running process are "loaded". Thus, the kernel has the virtual address and the page tables of the current process. That allows it to differentiate between the same virtual address in different processes. You should read a good operating systems book to familiarize yourself with the virtual memory concepts. I recommend "Modern Operating Systems" by A.Tanenbaum. For a short overview of virtual memory see also http://en.wikipedia.org/wiki/Virtual_memory tavi -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/