Wat is Fragmentatie?

Verschijnsel waarbij door herhaald reserveren en vrijgeven het vrije geheugen in kleine stukken uiteenvalt, zodat een groot aaneengesloten gebied niet meer kan worden gereserveerd ook al is de totale hoeveelheid voldoende.

Japanse benaming: 断片化

“Fragmentatie” komt voor in 2 oefenvragen uit 2 onderwerpen, bijv. Linker, loader en uitvoerbare formaten, Geheugenhiërarchie en prestaties.

Vakgebied: Linker, loader en uitvoerbare formaten

Nu oefenen: vragen over Fragmentatie

Bij herhaald malloc en free kan het voorkomen dat, ook al is het totaal aan vrij geheugen ruim voldoende, een groot gebied niet meer in één keer kan worden gereserveerd. Hoe heet dit verschijnsel?

  1. AGeheugenlek (memory leak)
  2. BFragmentatie
  3. CStack overflow
Antwoord en toelichting tonen

Antwoord: B. Fragmentatie

Bij herhaald reserveren en vrijgeven van gebieden van verschillende grootte raken kleine vrije stukken verspreid tussen gebruikte gebieden. Ook als het totaal aan vrije ruimte groot is, mislukt een grote reservering als er geen aaneengesloten groot vrij gebied is. Dit heet fragmentatie. Geheugenallocators beperken fragmentatie door per grootte te beheren en naburige vrije stukken samen te voegen. Bij embedded apparaten die lang blijven draaien, is hierop extra te letten.

Welke combinatie van het belangrijkste voordeel en nadeel van het gebruik van grote pagina's (huge pages) is juist?

  1. AVoordeel is een lagere missratio van de cache, nadeel is meer TLB-misses
  2. BVoordeel is dat paginafouten verdwijnen, nadeel is een groter verbruik van schijfcapaciteit
  3. CVoordeel is minder TLB-misses, nadeel is dat interne fragmentatie eerder toeneemt
Antwoord en toelichting tonen

Antwoord: C. Voordeel is minder TLB-misses, nadeel is dat interne fragmentatie eerder toeneemt

Bij grotere pagina's kan één TLB-entry een groot bereik vertalen, zodat bij programma's met grote datasets het aantal TLB-misses sterk afneemt. Omdat echter zelfs voor weinig data in eenheden van grote pagina's wordt toegewezen, neemt het ongebruikte gebied (interne fragmentatie) toe en wordt geheugentoewijzing minder flexibel. TLB-misses nemen juist af, en de missratio van de cache hangt niet rechtstreeks van de paginagrootte af. Paginafouten verdwijnen er evenmin door.

“Fragmentatie” in de toelichting

Vragen met “Fragmentatie” (2)

  1. Bij herhaald malloc en free kan het voorkomen dat, ook al is het totaal aan vrij geheugen ruim voldoende, een groot gebied niet meer in één keer kan worden gereserveerd. Hoe heet dit verschijnsel?
  2. Welke combinatie van het belangrijkste voordeel en nadeel van het gebruik van grote pagina's (huge pages) is juist?

Verwante termen

TLB (translation lookaside buffer) ASLR BSS-sectie Dynamisch linken Dynamische linker ELF Entry point Gedeelde bibliotheek (shared library) GOT (global offset table) Heap

Naar de woordenlijst