Ekstern fragmentering oppstår når det er flere ledige minneblokker som er for små til å brukes av en prosess. Dette kan skje når prosesser er tildelt minne i forskjellig størrelse biter, og det gjenværende ledige minnet ikke er sammenhengende. Ekstern fragmentering kan reduseres ved å bruke en minnebehandlingsalgoritme som tildeler minne i sammenhengende biter, eller ved å bruke en komprimeringsalgoritme som flytter prosesser rundt for å frigjøre sammenhengende minne.
Intern fragmentering oppstår når en minneblokk som er allokert til en prosess ikke utnyttes fullt ut. Dette kan skje når prosessen tildeler minne i forskjellig størrelse biter, og det gjenværende ledige minnet i blokken ikke er sammenhengende. Intern fragmentering kan reduseres ved å bruke en minnebehandlingsalgoritme som tildeler minne i sammenhengende deler, eller ved å bruke en komprimeringsalgoritme som flytter data rundt i en blokk for å frigjøre sammenhengende minne.
Her er en tabell som oppsummerer de viktigste forskjellene mellom ekstern og intern fragmentering:
| Funksjon | Ekstern Fragmentering | Intern fragmentering |
|---|---|---|
| Årsak | Flere ledige minneblokker som er for små til å brukes | Minneblokken som er allokert til en prosess er ikke fullt utnyttet |
| Effekt | Prosesser kan ikke tildeles minne | Prosessen kan ikke bruke hele minnet den har blitt tildelt |
| Løsning | Bruk en minnebehandlingsalgoritme som tildeler minne i sammenhengende deler, eller bruk en komprimeringsalgoritme som flytter prosesser rundt for å frigjøre sammenhengende minne | Bruk en minnebehandlingsalgoritme som tildeler minne i sammenhengende deler, eller bruk en komprimeringsalgoritme som flytter data rundt i en blokk for å frigjøre sammenhengende minne |