Linker, Loader und ausführbare Formate
Wie heißt das Phänomen, dass sich nach wiederholtem malloc und free zwar insgesamt genug freier Speicher findet, aber ein großer zusammenhängender Bereich nicht mehr reserviert werden kann?
- ASpeicherleck (Memory Leak)
- BFragmentierung
- CStack Overflow
Antwort und Erläuterung anzeigen
Antwort: B. Fragmentierung
Werden Bereiche unterschiedlicher Größe wiederholt reserviert und freigegeben, verteilen sich kleine freie Lücken zwischen den belegten Bereichen. Auch wenn die Summe des freien Speichers groß ist, schlägt die Reservierung eines großen Bereichs fehl, wenn kein großer zusammenhängender freier Bereich vorhanden ist. Dies nennt man Fragmentierung. Speicherallokatoren verringern sie, indem sie nach Größen getrennt verwalten oder benachbarte freie Bereiche zusammenfassen. Bei lange laufenden Embedded-Geräten ist besondere Vorsicht geboten.