Abstract
For the past three decades, the buddy system has been the method of choice for memory allocation because of its speed and simplicity. However, the software realisation indicates that the buddy system incurs the overhead of internal fragmentation, external fragmentation, and memory traffic due to splitting and coalescing memory blocks. This paper presents a thorough analysis of the buddy system and its generalised extension, i.e. the generalised buddy system. All problems associating with the generalised buddy system will be extensively investigated. These problems include internal fragmentation, boundary and size blind spots that are the major causes for external fragmentation, and lastly splitting and coalescing overhead that can slow down the system performance. In 1996, Chang and Gehringer introduced the modified buddy system which eliminates two major drawbacks. First, it eliminates the splitting and coalescing overhead associated with the buddy system. Secondly, it also eliminates the internal fragmentation by using a new marking algorithm that only allocates a requested size. However, the severity of external fragmentation resulting from boundary and size blind spot remains to be studied. We propose an extension to the design that can solve existing issues. The extension also includes the first-fit algorithm into hardware domain. Two solutions that can solve the issues of size and boundary blind spots are also proposed. These solutions involve bit shifting to solve the boundary blind spot and the generalised buddy system to solve the size blind spot. We also present the simulation results of the proposed solutions. These results clearly indicate that both the shifting and the generalised buddy system yield minimal improvement over the modified buddy system. However, we believe that for some applications, these approaches enhance memory utilisation.
Published Version
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have