Dynamic storage allocation techniques


Published on

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Dynamic storage allocation techniques

  1. 1. Shashwat Shriparv dwivedishashwat@gmail.com InfinitySoft
  2. 2. The techniques needed to implement dynamic storage allocation techniques depends on how the space is deallocated. ie, implicitly or explicitly
  3. 3.  Explicit allocation of fixed size block  Explicit allocation of variable size block  Implicit deallocation
  4. 4.  The simplest form dynamic storage allocation.  The blocks linked together in a list and the allocation and deallocation can done quickly with less or no storage overhead  A pointer available points to the first block in the list of available blocks
  5. 5.  available available
  6. 6.  When blocks are allocated & deallocated storage can become fragmented ie, heap may consist alternate blocks that are free & in use  In variable size allocation it will be a problem bcoz we could not allocate a block larger than any free blocks, even though the space is available  The first fit method can be used to allocate variable sized block
  7. 7.  When a block of size is allocated it search for the first free block size f>=s. This block is then subdivided in to a used block of size s& a free block of size f-s. Its time consuming;  When a block is deallocated ,it check to see if it is next to a free block .If possible,the deallocated is combined with a free block next to it to create larger free block.It helps to avoid fragmentation.
  8. 8. free free free
  9. 9.  Implicit deallocation requires the cooperation between user program& runtime packages.this is implemented by fixing the format of storage blocks. Optional block size Optional reference count Optional mark Pointers to blocks User information
  10. 10.  The first problem is to recognize the block boundaries,for fixed size it is easy.  In variable size block the size of block is kept in a inaccessible storage attached to the block.  The second problem is of recognizing the if a block is in use. Used block can be referred by the user program using pointers. The pointers are kept in a fixed position in the block for the easiness of checking the reference .
  11. 11. Two approaches can be used for implicit deallocation.  Reference counts  Marking techniques
  12. 12.  We keep track of the no of reference to the present block. if it ever drops to 0 the block is deallocated.  Maintaining reference counts can be costly in time(the pointer assignment p:=q leads to changes in the reference counts of the blocks pointed by both p&q)  Reference counts are best if there is no cyclical reference occurs.
  13. 13.  Here the user program suspend temporarily & use the frozen pointers to determine the used blocks This approach requires all the pointers to the heap to be known.(conceptually,it’s like pouring paint to the heap through the pointers)  First we go through the heap&marks all the blocks unused.Then we follow the pointers &mark all the reachable blocks as used.Then sequential scan of heap collects all the blocks still marked unused.
  14. 14. Shashwat Shriparv dwivedishashwat@gmail.com InfinitySoft