Subversion Repositories HelenOS-doc

Rev

Rev 97 | Rev 105 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 97 Rev 101
Line 55... Line 55...
55
      organization of physical memory, the frame allocator is always working
55
      organization of physical memory, the frame allocator is always working
56
      within a context of a particular frame zone. In order to carry out the
56
      within a context of a particular frame zone. In order to carry out the
57
      allocation requests, the frame allocator is tightly integrated with the
57
      allocation requests, the frame allocator is tightly integrated with the
58
      buddy system belonging to the zone. The frame allocator is also
58
      buddy system belonging to the zone. The frame allocator is also
59
      responsible for updating information about the number of free and busy
59
      responsible for updating information about the number of free and busy
60
      frames in the zone. <figure>
60
      frames in the zone. <figure float="1">
61
          <mediaobject id="frame_alloc">
61
          <mediaobject id="frame_alloc">
62
            <imageobject role="pdf">
62
            <imageobject role="pdf">
63
              <imagedata fileref="images.vector/frame_alloc.pdf" format="PDF" />
63
              <imagedata fileref="images.vector/frame_alloc.pdf" format="PDF" />
64
            </imageobject>
64
            </imageobject>
65
 
65
 
Line 120... Line 120...
120
      <para>This approach greatly reduces external fragmentation of memory and
120
      <para>This approach greatly reduces external fragmentation of memory and
121
      helps in allocating bigger continuous blocks of memory aligned to their
121
      helps in allocating bigger continuous blocks of memory aligned to their
122
      size. On the other hand, the buddy allocator suffers increased internal
122
      size. On the other hand, the buddy allocator suffers increased internal
123
      fragmentation of memory and is not suitable for general kernel
123
      fragmentation of memory and is not suitable for general kernel
124
      allocations. This purpose is better addressed by the <link
124
      allocations. This purpose is better addressed by the <link
125
      linkend="slab">slab allocator</link>.<figure>
125
      linkend="slab">slab allocator</link>.<figure float="1">
126
          <mediaobject id="buddy_alloc">
126
          <mediaobject id="buddy_alloc">
127
            <imageobject role="pdf">
127
            <imageobject role="pdf">
128
              <imagedata fileref="images.vector/buddy_alloc.pdf" format="PDF" />
128
              <imagedata fileref="images.vector/buddy_alloc.pdf" format="PDF" />
129
            </imageobject>
129
            </imageobject>
130
 
130
 
Line 243... Line 243...
243
      objects from magazines, calling slab cache destructor on them and
243
      objects from magazines, calling slab cache destructor on them and
244
      putting them back into slabs. When a slab contanins no allocated object,
244
      putting them back into slabs. When a slab contanins no allocated object,
245
      it is immediately freed.</para>
245
      it is immediately freed.</para>
246
 
246
 
247
      <para>
247
      <para>
248
        <figure>
248
        <figure float="1">
249
          <mediaobject id="slab_alloc">
249
          <mediaobject id="slab_alloc">
250
            <imageobject role="pdf">
250
            <imageobject role="pdf">
251
              <imagedata fileref="images.vector/slab_alloc.pdf" format="PDF" />
251
              <imagedata fileref="images.vector/slab_alloc.pdf" format="PDF" />
252
            </imageobject>
252
            </imageobject>
253
 
253