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,                      | [EMAIL PROTECTED]
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | [EMAIL PROTECTED]
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to