[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Linux VM Question
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/