Subversion Repositories HelenOS-doc

Rev

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

Rev 169 Rev 185
Line 239... Line 239...
239
      boundaries. The advantage of this setup is that during most of the
239
      boundaries. The advantage of this setup is that during most of the
240
      allocations, no global spinlock needs to be held.</para>
240
      allocations, no global spinlock needs to be held.</para>
241
 
241
 
242
      <para>Should HelenOS run short of memory, it would start deallocating
242
      <para>Should HelenOS run short of memory, it would start deallocating
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 contains no allocated object,
245
      it is immediately freed.</para>
245
      it is immediately freed.</para>
246
 
246
 
247
      <para>
247
      <para>
248
        <figure float="1">
248
        <figure float="1">
249
          <mediaobject id="slab_alloc">
249
          <mediaobject id="slab_alloc">
Line 315... Line 315...
315
            magazines in the list), the algorithm continues with Step
315
            magazines in the list), the algorithm continues with Step
316
            1.</para>
316
            1.</para>
317
 
317
 
318
            <para><emphasis>Step 4.</emphasis> In this fail-safe step, an
318
            <para><emphasis>Step 4.</emphasis> In this fail-safe step, an
319
            object is allocated from the conventional slab layer and a pointer
319
            object is allocated from the conventional slab layer and a pointer
320
            to it is returned. If also the last magazine is full,</para>
320
            to it is returned. If also the last magazine is full, a new slab
-
 
321
            is allocated.</para>
321
          </formalpara>
322
          </formalpara>
322
 
323
 
323
          <formalpara>
324
          <formalpara>
324
            <title>Deallocation</title>
325
            <title>Deallocation</title>
325
 
326
 
Line 829... Line 830...
829
      supported by HelenOS and that there can be only one active address space
830
      supported by HelenOS and that there can be only one active address space
830
      per processor. In other words, when the FIFO queue is empty, there must
831
      per processor. In other words, when the FIFO queue is empty, there must
831
      be address spaces that are not active on any processor.</para>
832
      be address spaces that are not active on any processor.</para>
832
    </section>
833
    </section>
833
  </section>
834
  </section>
834
</chapter>
-
 
835
835
</chapter>
-
 
836