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?

  1. ASpeicherleck (Memory Leak)
  2. BFragmentierung
  3. 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.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Welcher Vorteil ergibt sich, wenn man beim Erstellen einer Shared Library nur die von außen genutzten Funktionen veröffentlicht und die Sichtbarkeit (Visibility) der Symbole interner Funktionen auf „hidden“ setzt?
  2. Welcher Mechanismus lässt in C++ die Konstruktoren globaler Objekte vor main ausführen?
  3. Welche Aussage zur vom Compiler aus einer Quelldatei ausgegebenen Objektdatei (.o) ist richtig?
  4. Welche Aussage zur Hauptaufgabe des Linkers ist richtig?
  5. Welche Aussage zur vom Linker durchgeführten Symbolauflösung ist richtig?

Vergleiche zu diesem Thema