[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Ideal Swap Partition Size



On Sat, Jan 24, 2009 at 09:03:28AM -0600, Aaron Konstam wrote:
> On Fri, 2009-01-23 at 15:42 -0800, Gordon Messmer wrote:
> > Aaron Konstam wrote:
> > > 
> > > This is explained in nearly all textbooks on Computer Architecture. So
> > > the question remains, where is the address space in Linux.
> > 
> > Patrick isn't the only one confused by your question.  I can't make 
> > heads or tails of it.  Are you asking where the mapping between the 
> > virtual address space and physical memory is done, or what?
> > 
> No I am asking where the virtual address space resides of the machine.

Research TLB, here is a link to start with:

   http://en.wikipedia.org/wiki/Translation_lookaside_buffer

With a TLB and clever kernel software a process has the luxury of living
in a virtual address space and not having to relocate itself to run.

This implies that the virtual address spaces (plural) reside in data
structures (tables) managed by the kernel (the answer to your question).
A process is activated with some TLB entries setup to map the process
address space to some real memory.   Any time the process reads or writes
outside of valid TLB entries a page fault handler is called in the kernel
and if the access is allowed/ valid then a real resource is allocated
and mapped as valid for the process and the instruction restarted.

The TLB and the ability to restart an instruction after a page fault
is central to building a demand paged virtual memory system.   Implied
in this is user mode and kernel mode state in the processor.

Most TLB hardware has less entries than a valid process may need
over its life.  However they can be reloaded (on demand) as the program counter
and data pointers change.

Most of the x86 and x86_64 processor documentation is difficult to understand
on this point.   If you can find a copy of a MIPS or perhaps M68020 processor
manual to read.   As a point of history the M68010 had no TLB/MMU but could
restart instructions.   With an external TLB virtual memory systems could
be built on the ability to restart instructions.

A TLB also has the side effect of letting the kernel isolate my process
from your process permitting multi user multitask systems.  


-- 
	Regards,
	T o m   M i t c h e l l


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]