Next: Przykład
Up: Algorytm Buddy
Previous: Wejście
- zwalniamy blok pamięci wielkości zaczynający się w a
- (*) patrzymy w mapie bitowej czy bliźniak zwolnionego bloku jest wolny
(wtedy bit powinien być zapalony)
- jeśli tak to :
- łączymy dwóch bliźniaków w jeden spójny blok wieklości -
usuwamy bliźniaka z listy wolnych bloków pamięci, odświeżamy mapę bitową
- jeżeli blok nie ma maksymalnej wielkości poszukujemy możliwości dalszego łączenia bloków skacząc do (*).
Teraz adresem początku bloku będzie adres do lewego bliźniaka
- bliźniak nie jest wolny - nie można już dalej łączyć - kończymy działanie
Kuba Gorski
2001-12-12