Dynamic Page Bindings.
Posted: Wed Aug 02, 2006 1:20 pm
Hi..
When a process is created, we bind whole kernel address space to that process's page directory. So that process can easily do system calls.
Now my memory manager has a heap of 4k at 0xD0000000. So when any new process is created, this address is mapped in its PD.
But kernel heap grows, so when this 4k mem is used I bind another page of 4k at end of old heap in kernel. But then all process starts doing page faults at 0xD0001000. This is obvious as this address is not yet binded in process PD.
Now tell me how do you maintain such dynamic page bindings? Do you bind the page in all process's PD when you bind it in kernels address space?
Hope this is making some sense..
When a process is created, we bind whole kernel address space to that process's page directory. So that process can easily do system calls.
Now my memory manager has a heap of 4k at 0xD0000000. So when any new process is created, this address is mapped in its PD.
But kernel heap grows, so when this 4k mem is used I bind another page of 4k at end of old heap in kernel. But then all process starts doing page faults at 0xD0001000. This is obvious as this address is not yet binded in process PD.
Now tell me how do you maintain such dynamic page bindings? Do you bind the page in all process's PD when you bind it in kernels address space?
Hope this is making some sense..