Często rozmiar jest wielokrotnością pewnej liczby bajtów, bądź też nie jest możliwe przydzielenie mniejszej liczby bajtów niż określona wartość graniczna – co w obu przypadkach prowadzi do fragmentacji wewnętrznej.

Wyróżnia się trzy strategie przydziału pamięci: pierwszy pasujący – na liście wolnych obszarów wyszukiwany jest pierwszy, którego rozmiar jest większy lub równy żądanemu; najlepiej pasujący – wyszukiwany jest wolny obszar, którego wielkość jest najbliższa żądanej; najgorzej pasujący – wyszukiwany jest największy wolny obszar.

Istnieje specjalny rodzaj zarządców pamięci, tzw. pule pamięci (ang. memory pool), które operują na obszarach pamięci o określonym z góry rozmiarze. W takich przypadkach problem fragmentacji zewnętrznej jest całkowicie eliminowany, gdy dodatkowo rozmiar ten ściśle odpowiada potrzebom aplikacji znika również problem fragmentacji wewnętrznejhttps://eia.pg.edu.pl/documents/184087/284323/wskaznikidynalok.pdf.

Zobacz też algorytm bliźniaków odśmiecanie pamięci przepełnienie sterty wyciek pamięci fragmentacja pamięci

Przypisy

Kategoria:Konstrukcje programistyczne Kategoria:Zarządzanie pamięcią