Skip to main content

Co je to bezplatný seznam?

Seznam zdarma je struktura dat, která drží adresy míst paměti počítače, které jsou k dispozici pro použití s běžícím programem při používání dynamické přidělování paměti. Seznam je nezbytný, když program musí přidělit programProstor z oblasti bezplatné paměti zvané The Halte. Implementace bezplatného seznamu může být jednoduchý propojený seznam nebo může být složitější datovou strukturou, jako napříkladSort Tree. Nejvyšší jazyky počítačových programování na vysoké úrovni automaticky zpracovávají bezplatný seznam a odstraní potřebu manuálního řízení.

Když program vyžaduje prostor pro ukládání informací při provádění programu, ITmusí požádat o konkrétní množství paměti z podkladového operačního systému. Umístění paměťových bloků, které lze použít, jsou uložena ve volném seznamu. Aby byla alokace úspěšná, množství požadované pamětimusí být k dispozici v jednom nebo více z těchto bloků. Když ukazatel na vhodné lokalio pamětin je vrácen, tento prvek seznamu je odstraněn.Blokujte zpět do seznamu zdarma, kde bude k dispozici při příštím pokusu o alokaci. Je možné, aby přidělení paměti selhalo, protože seznam je prázdný nebo proto, že nejsou dostatečně dostupné paměťové bloky, aby splnilyPožadavek programu.Seznam se prochází a první blok, který je dostatečně velký, se vrátí. Pokud je blok více než dvojnásobek požadované velikosti, je na polovinu a nevyužitá polovina se přidá zpět do seznamuTato metoda obchoduje s jednoduchým kódováním pro riziko roztříštěné pamětiOblasti, které by nikdy mohly být vráceny na seznam.Otevřené bloky pouze jedné konkrétní velikosti. To znamená, že když je přijata žádost o přidělování, je konzultován seznam, který obsahuje bloky, které jsou dostatečně velké, aby vyplnily žádost, a je vráceno otevřené umístění. Pokud neK dispozici jsou bezplatné bloky, které jsou menší než dvojnásobnou velikost, větší blok je rozdělen na dva, aby splnil požadavky.Nebo to může odkazovat na mnohem složitější typ datové struktury. Různé typy tříd, pokud jsou udržovány jednoduché a vyvážené, mohou pomoci zvýšit rychlost nalezení otevřených paměťových bloků na úkor komplikaceZdrojový kód. Propojený seznam může být pomalejší než specializovaný strom třídění, ale vytváří programKód, který je mnohem snazší číst, ladit a upravit.Zdarma seznam a konsolidujte volné prostory tak, aby byly sousedící. To má za následek zabránění fragmentaci a umožnění přidělení větších bloků paměti