Kapitola 6. Metody regenerace paměti

Obsah

6.1. Dvoufázové značkování
6.2. Regenerace s kopírováním
6.3. Inkrementální regenerace
6.4. Regenerace s počítáním odkazů

Regenerace paměti se používá v případech, kdy chceme již nepoužívané bloky paměti dát k dispozici pro další přidělování. V této kapitole se budeme zabvat metodami automatické regenerace paměti, kdy jsou nepoužívané bloky paměti vyhledány automaticky systémem správy paměti.

Pro zjištění toho, které úseky paměti se již nepoužívají, je k dispozici mnoho algoritmů. Většinou spoléhá automatická regenerace paměti na informace o tom, na které bloky paměti neukazuje žádná programová proměnná. V zásadě existují dvě skupiny metod - metody založené na sledování odkazů a metody založené na čítačích odkazů.

Mezi metodami regenerace paměti mají zvláštní význam metody inkrementální, při kterých probíhá regenerace paměti po částech a střídá se s prováděním vlastního programu. Je-li zaručen vhodný poměr mezi dobou věnovanou čistění paměti a činnosti aplikace (například pokud během každých dvou milisekund je nejvýše jedna věnována správě paměti a zbytek připadá na „užitečnou“ činnost, lze tyto inkrementální metody využít i pro systémy pracující v reálném čase, kdy musí být zajištěna rychlá odezva systému.


Poznámka:
Poznámka:
Není tedy pravdivé často tradované tvrzení, že programovací jazyky s automatickou regenerací paměti nejsou vhodné pro systémy pracující v reálném čase. Záleží pouze na metodě, která je pro regeneraci použita.