Home

minneshantering

Minneshantering är processen att tilldela och frigöra minnesutrymme för program och systemkomponenter. Målet är att ge programmen tillräckligt med minne med god prestanda samtidigt som minnesskydd och isolering mellan processer upprätthålls. En effektiv minneshantering minimerar fragmentering, utnyttjar cacheminne och stödjer flera program som körs samtidigt utan att störa varandra.

I moderna operativsystem hanteras minnet av ett minneshanteringssystem i samarbete med processorn via en MMU. Virtuell

Vanliga tekniker är statisk tilldelning (vid kompilering) och dynamisk tilldelning (vid körning). Dynamisk tilldelning hanteras ofta

Automatisk minneshantering förekommer i många högnivåspråk och innebär att programmet inte explicit frigör minne; en garbage

Prestanda, minnesfragmentering och cacheeffekt är centrala faktorer i modern minneshantering. I inbyggda system är begränsat minne

minneshantering
delar
upp
minne
i
adresser
som
översätts
till
fysiska
platser
i
RAM
med
hjälp
av
sidbord
och/eller
segmentering,
ofta
med
en
Translation
Lookaside
Buffer
(TLB).
Det
ger
skydd
mellan
processer
och
möjliggör
användning
av
mycket
större
adresser
än
fysiskt
minne.
via
stackminne
och
heapminne.
Olika
allokeringsalgoritmer
används
för
att
hitta
fria
block,
exempelvis
first-fit,
best-fit
och
worst-fit.
Fragmentering
kan
uppstå
när
minnet
delas
upp
i
små
bitar;
olika
konstruktioner
som
buddy-algoritmen
eller
slab-allokering
används
för
att
hantera
det.
collector
letar
efter
oanvänt
minne.
Metoder
inkluderar
referensräkning
och
spårningsbaserade
tekniker
som
mark-and-sweep,
copying
och
generational
samling.
Språk
med
manuell
minneshantering
kräver
programmeraren
att
frigöra
minne
själv
och
kan
leda
till
luckor
och
läckor.
och
realtidskrav
särskilt
viktigt.
Vanliga
verktyg
för
analys
och
felsökning
inkluderar
profiler,
heap-analyser
och
sanitizers.