Subversion Repositories HelenOS-doc

Compare Revisions

Ignore whitespace Rev 68 → Rev 69

/design/trunk/src/ch_memory_management.xml
14,6 → 14,7
<title>Physical memory management</title>
 
<section id="zones_and_frames">
<indexterm><primary>memory management</primary><secondary>memory zone</secondary></indexterm>
<title>Zones and frames</title>
 
<para>HelenOS represents continuous areas of physical memory in
44,6 → 45,7
</section>
 
<section id="frame_allocator">
<indexterm><primary>memory management</primary><secondary>frame allocator</secondary></indexterm>
<title>Frame allocator</title>
 
<para>The frame allocator satisfies kernel requests to allocate
83,6 → 85,7
</section>
 
<section id="buddy_allocator">
<indexterm><primary>memory management</primary><secondary>buddy system</secondary></indexterm>
<title>Buddy allocator</title>
 
<para>In the buddy system, the memory is broken down into power-of-two
157,7 → 160,8
</section>
 
<section id="slab">
<title>Slab allocator</title>
<indexterm><primary>memory management</primary><secondary>slab</secondary></indexterm>
<title>Slab allocator</title>
 
<para>The majority of memory allocation requests in the kernel is for
small, frequently used data structures. The basic idea behind the slab
240,7 → 244,8
</itemizedlist></para>
 
<section>
<title>Magazine layer</title>
<indexterm><primary>memory management</primary><secondary>slab magazine</secondary></indexterm>
<title>Magazine layer</title>
 
<para>Due to the extensive bottleneck on SMP architures, caused by
global slab locking mechanism, making processing of all slab
378,7 → 383,8
<title>Address spaces</title>
 
<section>
<title>Address space areas</title>
<indexterm><primary>memory management</primary><secondary>address space area</secondary></indexterm>
<title>Address space areas</title>
 
<para>Each address space consists of mutually disjunctive continuous
address space areas. Address space area is precisely defined by its
424,6 → 430,7
</section>
 
<section>
<indexterm><primary>memory management</primary><secondary>asid</secondary></indexterm>
<title>Address Space ID (ASID)</title>
 
<para>When switching to the different task, kernel also require to
473,7 → 480,7
Non-existing mapping generates page fault exception, calling kernel
exception handler, thus allowing kernel to manipulate rules of
memory access. Information for pages mapping is stored by kernel in
the <link linkend="page_tables">page tables</link></para>
the page tables</para>
 
<para>The majority of the architectures use multi-level page tables,
which means need to access physical memory several times before
521,7 → 528,8
</section>
 
<section>
<title>Global hash table</title>
<indexterm><primary>memory management</primary><secondary>hash table</secondary></indexterm>
<title>Global hash table</title>
 
<para>Implementation of the global hash table was encouraged by the
ia64 architecture support. One of the major differences between
544,6 → 552,7
</section>
 
<section id="tlb">
<indexterm><primary>memory management</primary><secondary>tlb</secondary></indexterm>
<title>Translation Lookaside buffer</title>
 
<para>Due to the extensive overhead during the page mapping lookup in