Home

geheugenallocatie

Geheugenallocatie is het proces waarbij een computerprogramma geheugen toegewezen krijgt om data en data-structuren op te slaan tijdens de uitvoering. Het omvat het reserveren van geheugen, het toewijzen van adressen en het vrijgeven ervan wanneer het niet langer nodig is. Er bestaan verschillende vormen: statische (compile-time) geheugenallocatie en dynamische (run-time) allocatie. Bij statische allocatie worden variabelen op vaste adressen geplaatst in het stack- of data-segment, terwijl dynamische allocatie via een geheugenbeheerder plaatsvindt die geheugen op de heap toewijst.

De geheugenbeheerder, allocator genoemd, gebruikt diverse strategieën om aanvragen te behandelen. Veelgebruikte algoritmen zijn first-fit, best-fit

In talen met handmatig geheugenbeheer (zoals C) gebeurt allocatie via functies als malloc en vrijgave via free.

Het correct beheren van geheugen is cruciaal om leaks, dangling pointers en beveiligingsproblemen te voorkomen. Diagnostische

en
worst-fit;
geavanceerdere
systemen
maken
gebruik
van
buddy-systemen,
slab-allocators
of
regionale/arena-allocators.
Bij
dynamische
allocatie
kan
er
externe
fragmentatie
ontstaan
(vrij
geheugen
ligt
verspreid)
en
interne
fragmentatie
(toegewezen
blokken
bevatten
meer
ruimte
dan
nodig).
Technieken
zoals
paging,
compaction
of
garbage
collection
helpen
dit
aan
te
pakken.
In
talen
zoals
C++
gebeurt
het
via
new
en
delete.
In
automatische
talen
wordt
geheugen
doorgaans
via
garbage
collection
beheerd,
wat
de
programmering
vereenvoudigt
maar
nog
steeds
allocatie-
en
latentie-kosten
met
zich
meebrengt.
hulpmiddelen
en
memory
profilers
ondersteunen
bij
het
opsporen
van
geheugenproblemen.