General questions about virtual memory
Max Laier
max at love2party.net
Wed Jul 30 17:28:35 UTC 2008
On Wednesday 30 July 2008 18:07:51 FreeBSD Hackers wrote:
> > This suggest that you don't understand virtual memory at all. Go back to
> > the
> > start of the chapter and re-read. The page directories and page tables
> > describe a *virtual* address space. For a given architecture the
> > *virtual* address space has a fixed size (4GB for i386), so the page
> > table structure is
> > always the same size (though it might be sparsely populated). Inside the
> > page
>
> Ack! As soon as I read this I realized the mistake I had made in my
> thinking. This was a dumb question, and I knew better than to ask.
> Somehow I had confused myself.
>
> ----- 8< -----
>
> If a read request is made to a virtual address who's data has been swapped
> out, the CPU traps to the OS to fix the problem. Assuming there are no
> free page frames for the new data, a page frame is selected and evicted to
> make room for the new page. Whatever page was chosen belongs to a process
> somewhere in the system. When that page frame gets swapped, the PTE
> pointing to that page frame must be updated to indicate that that data is
> no longer in RAM. How does the OS find that PTE? Does it search through
> every entry of every page table for every process in the system until it
> finds it?
You should have quoted (and I suppose read) my entire message:
> .. you need additional bookkeeping
> to track that (see core map, free lists, ...)
Wikipedia really does a good job explaining all this.
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
More information about the freebsd-hackers
mailing list