Skip to main content

Co to jest darmowa lista?

Bezpłatna lista to struktura danych, która zawiera adresy lokalizacji pamięci komputera, które są dostępne do użytku przez uruchomiony program podczas korzystania z dynamicznej alokacji pamięci. Lista staje się konieczna, gdy program musi alokowaćmiejsce z obszaru bezpłatnej pamięci o nazwie sterta. Implementacja darmowej listy może być prostą powiązaną listą lub może być bardziej złożoną strukturą danych, taką jakSort Tree. Większość języków programowania komputerowego wysokiego poziomu automatycznie obsługuje bezpłatną listę, usuwając potrzebę zarządzania ręcznego.

Gdy program wymaga miejsca do przechowywania informacji podczas wykonywania programu, ITMusi żądać określonej ilości pamięci z podstawowego systemu operacyjnego. Lokalizacje bloków pamięci, które można wykorzystać, są przechowywane na liście bezpłatnej. Aby alokacja zakończyła się powodzeniem, ilość żądanej pamięcimusi być dostępne w jednym lub więcej z tych bloków. Gdy wskaźnik do odpowiedniego lokalizacji pamięcin jest zwracane, że element listy został usunięty.

Po zakończeniu programu za pomocą pamięci może go odprowadzić. Obejmuje to przekazanie wskaźnika do pamięciZablokuj z powrotem do listy bezpłatnej, gdzie będzie dostępna następnym razem, gdy próba przydziału. Możliwe, że alokacja pamięci może się nie udać, ponieważ lista jest pusta lub ponieważ nie ma dostępnych bloków pamięci wystarczająco dużych, aby spełni毹danie programu.

Najprostsza forma zarządzania pamięciLista jest przemierzana, a pierwszy duży blok jest wystarczająco zwracany. Jeśli blok jest więcej niż dwa razy więcej niż wymagany rozmiar, to jest o połowę, a nieużywana połowa jest dodawana z powrotem do listy. Ta metoda wymienia proste kodowanie ryzyka fragmentarycznej pamięciObszary, które mogą nigdy nie zostać zwrócone na listę.

Inna forma zarządzania pamięcią nazywa się systemem alokacji Buddy. W przeciwieństwie do pierwszego systemu dopasowania, przydział Buddy utrzymuje kilka darmowych list, z których każda trzymaOtwórz bloki tylko jednego konkretnego rozmiaru. Oznacza to, że po odbieraniu żądania alokacji lista, która jest wystarczająco duża, aby wypełnić żądanie, i zwracana jest otwarta lokalizacja. Jeśli nie.Darmowe bloki, które są mniej niż dwa razy więcej niż żądany rozmiar, jest dostępny większy blok jest podzielony na dwa, aby spełnić wymagania.

Lista bezpłatna termin może zapoznać się z pojedynczą połączoną listą adresów pamięci,lub może odnosić się do znacznie bardziej złożonego rodzaju struktury danych. Różne rodzaje drzew sortowania, jeśli są proste i zrównoważone, mogą pomóc zwiększyć prędkość znajdowania otwartych bloków pamięci kosztem komplikowaniakod źródłowy. Połączona lista może być wolniejsza niż wyspecjalizowane drzewo sortowania, ale tworzy programKod ing, który jest znacznie łatwiejszy do odczytania, debugowania i modyfikacji.

Niektóre języki programowania i systemy operacyjne wykorzystują specjalny mechanizm o nazwie Garbage Collection. Jest to proces, który może pomóc w przejęciu różnych wpisów nadarmowa lista i konsoliduj wolne przestrzenie, aby były przylegające. Ma to wpływ na fragmentację i umożliwienie przydzielenia większych bloków pamięci.