Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Jul 2008 07:59:53 -0400
From:      "FreeBSD Hackers" <ml.freebsd.hackers@gmail.com>
To:        "FreeBSD Hackers" <freebsd-hackers@freebsd.org>
Subject:   General questions about virtual memory
Message-ID:  <591f70e00807300459j74aac11eob0bea7cdf4b4dcd4@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi, all.  I apologize for not posting a question specific to FreeBSD (I'll
study about that later), but I'm looking for some help understanding a few
things and I don't know where else to turn.  Using FreeBSD to give me
concrete examples of how certain things work is okay, since I do use FreeBSD
and I intend to read and study books covering the design and implementation
of FreeBSD.

I recently picked up one of my old college textbooks, "Modern Operating
Systems" (Tanenbaum, an older edition, but I'm not sure which one since the
book is at home and I am not) with a strong desire to read it cover-to-cover
and get a solid foundation of the concepts described therein.  The chapter
on virtual memory has left me with some questions, and if anyone would be
willing to help me understand (either on or off list) a few things that
aren't clear, I would very much appreciate it.

Examples of some specific questions that I have include:

WRT translation of virtual addresses to physical addresses, where does the
hardware stop and the software begin?  Explanation: who determines the
format of the page tables (CPU or OS)?  Who populates and maintains the page
tables?  Where does the translation lookaside buffer reside?  Who maintains
the TLB?

Also WRT page tables, how does the OS and the MMU adjust for different sizes
of physical RAM?  Wouldn't the page tables for a system with 512 MB of RAM
will be fewer than the page tables for a system with 2 GB of RAM?  How does
the CPU know how many page table entries there are?

I have a few more questions, but for starters this is the kind of
information I'm seeking.  I'm just not getting a clear enough picture from
the textbook I'm reading now.  (It makes me wish I was still in college so I
could dump my questions on my college professor. :)

If anyone is willing to help me understand this, I would greatly appreciate
it.  I would also value your input if there are other resources (people,
mailing lists, books, web pages, etc.) that you want to recommend instead of
taking some time to help teach me.

Thank you,

Kevin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?591f70e00807300459j74aac11eob0bea7cdf4b4dcd4>