Next: Wejście
Up: Algorytm Buddy
Previous: Algorytm Buddy
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 :
Algorytm bliźniaków pozwala na utrzymanie niskiej fragmentacji pamięci
przy niewielkim obciążeniu procesora.
Kuba Gorski
2001-12-12