Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat does the Kernel Virtual Memory of each process contain?
    text
    copied!<p>When say 3 programs (executables) are loaded into memory the layout might look something like this:</p> <p><a href="http://img97.imageshack.us/img97/3460/processesm.jpg">alt text http://img97.imageshack.us/img97/3460/processesm.jpg</a></p> <p>I've following questions:</p> <ol> <li><p>Is the concept of Virtual Memory limited to user processes? Because, I am wondering where does the Operating System Kernel, Drivers live? How is its memory layout? I want to know more about kernel side memory. I know its operating system specific make your choice (windows/linux).</p></li> <li><p>Is the concept of Virtual Memory per process basis? I mean is it correct for me to say 4GB of process1 + 4GB of process2 + 4GB of process3 = 12GB of virtual memory (for all processes). This does't sound right. Or from a total of 4GB space 1GB is taken by kernel &amp; rest 3GB is shared b/w all processes. </p></li> <li><p>They say, on a 32 bit machine in a 4GB address space. Half of it (or more recently 1GB) is occupied by kernel. I can see in this diagram that "Kernel Virtual memory" is occupying 0xc0000000 - 0xffffffff (= 1 GB). Are they talking about this? or is it something else? Just want to confirm.</p></li> <li><p>What <strong>exactly</strong> does the <code>Kernel Virtual Memory</code> of each of these processes contain? What is its layout?</p></li> <li><p>When we do IPC we talk about shared memory. I don't see any memory shared between these processes. Where does it live?</p></li> <li><p>Resources (files, registries in windows) are global to all processes. So, the resource/file handle table must be in some global space. Which area would that be in?</p></li> <li><p>Where can I know more about this kernel side stuff.</p></li> </ol>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload