A weighted buddy method for dynamic storage allocation

An extension of the buddy method, called the weighted buddy method, for dynamic storage allocation is presented. The weighted buddy method allows block sizes of 2<supscrpt><italic>k</italic></supscrpt> and 3·2<supscrpt><italic>k</italic></supscrpt>, whereas the original buddy method allowed only block sizes of 2<supscrpt><italic>k</italic></supscrpt>. This extension is achieved at an additional cost of only two bits per block. Simulation results are presented which compare this method with the buddy method. These results indicate that, for a uniform request distribution, the buddy system has less total memory fragmentation than the weighted buddy algorithm. However, the total fragmentation is smaller for the weighted buddy method when the requests are for exponentially distributed block sizes.