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 przydzielić przestrzeń z obszaru bezpłatnego pamięci o nazwie sterta. Wdrożenie bezpłatnej listy może być prostą listy połączoną lub może być bardziej złożoną strukturą danych, taką jak sortowanie.
Gdy program wymaga miejsca do przechowywania informacji podczas wykonywania programu, musi żądać konkretnej 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ęci musi być dostępnaLokalizacja jest zwracana, ten element listy zostanie usunięty.
Po zakończeniu programu za pomocą pamięci może go odrzucić. Obejmuje to przekazanie wskaźnika do bloku pamięci z powrotem do darmowej listy, gdzie stanie się dostępna następnego razu.
Najprostsza forma zarządzania pamięcią nazywa się pierwszym systemem dopasowania. System ten utrzymuje pojedynczą listę wolnych lokalizacji pamięci. Gdy wysyłane jest żądanie pamięci, lista jest przemierzana, a pierwszy blok jest wystarczająco duży.VING fragmentaryczne obszary pamięci, które mogą nigdy nie zostać zwrócone na listę.
Inna forma zarządzania pamięcią nazywa się systemem alokacji Buddy. Inny od pierwszego systemu dopasowania, alokacja Buddy przechowuje kilka darmowych list, każda z nich trzyma otwarte bloki o jednym konkretnym rozmiarze. Oznacza to, że gdy żądanie alokacji jest odbierane, lista, która pomieści bloków, które są wystarczająco duże, aby zapełnić żądanie, a otwartą lokalizację jest powrócona. Powrót otwartej lokalizacji. Powrót nie ma wolnych bloków. wymagania.
Termin „lista darmowa” 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 typy drzew sortowania, jeśli są proste i zrównoważone, może pomóc zwiększyć szybkość znajdowania otwartych bloków pamięci na koszt komplikowania kodu źródłowego.alizowane drzewo sortowania, ale tworzy kod programowania, który jest znacznie łatwiejszy do odczytania, debugowania i modyfikacji.
Niektóre języki programowania i systemy operacyjne wykorzystują specjalny mechanizm zwany kolekcją śmieci. Jest to proces, który może pomóc w przejęciu różnych wpisów na darmowej liście i skonsolidują wolne przestrzenie, aby były przylegające. Ma to wpływ na fragmentację i umożliwienie przydzielenia większych bloków pamięci.