next up previous
Next: Wejście Up: Algorytm Buddy Previous: Algorytm Buddy

Wstęp

Algorytm ten stara się zaalokować najmniejszy możliwy blok pamięci będący potęgą dwójki nie mniejszy od zamówienia (które jest też potęgą dwójki). Kluczowym pojęciem niezbędnym do zrozumienia alogrytmu jest bliźniak bloku pamięci, czyli blok o tym samym rozmiarze leżący bezpośrednio przed albo za badanym blokiem. To czy nasz bliźniak leży z lewej czy z prawej strony zależy od naszej pozycji. Zakładając, że początkowy adres wynosi 0 wzór na wyznaczenie pozycji bliźniaka możemy przedstawić następująco:

b = adres_naszego_bloku mod (2 * rozmiar_bloku)
jeśli b równa się 0 oznacza to, że jesteśmy lewym bliźniakiem, czyli szukamy swojego brata z prawej strony, wpp. analogicznie odwrotnie. Najłatwiej to zrozumieć na podstawie przykładu : \includegraphics[width=0.6\textwidth,height=0.2\textheight]{ryc1.eps}

Algorytm bliźniaków pozwala na utrzymanie niskiej fragmentacji pamięci przy niewielkim obciążeniu procesora.


Kuba Gorski 2001-12-12