Re: Linux VM Question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux