Ekstern fragmentering opstår, når der er flere ledige hukommelsesblokke, der er for små til at blive brugt af enhver proces. Dette kan ske, når processer er tildelt hukommelse i bidder af forskellig størrelse, og den resterende ledige hukommelse ikke er sammenhængende. Ekstern fragmentering kan reduceres ved at bruge en hukommelsesstyringsalgoritme, der allokerer hukommelse i sammenhængende bidder, eller ved at bruge en komprimeringsalgoritme, der flytter processer rundt for at frigøre sammenhængende hukommelse.
Intern fragmentering opstår, når en hukommelsesblok, der er allokeret til en proces, ikke udnyttes fuldt ud. Dette kan ske, når processen allokerer hukommelse i bidder af forskellig størrelse, og den resterende ledige hukommelse i blokken ikke er sammenhængende. Intern fragmentering kan reduceres ved at bruge en hukommelsesstyringsalgoritme, der allokerer hukommelse i sammenhængende bidder, eller ved at bruge en komprimeringsalgoritme, der flytter data rundt i en blok for at frigøre sammenhængende hukommelse.
Her er en tabel, der opsummerer de vigtigste forskelle mellem ekstern og intern fragmentering:
| Funktion | Ekstern Fragmentering | Intern Fragmentering |
|---|---|---|
| Årsag | Flere ledige hukommelsesblokke, der er for små til at blive brugt | Hukommelsesblok, der er allokeret til en proces, er ikke fuldt udnyttet |
| Effekt | Processer kan ikke tildeles hukommelse | Processen kan ikke bruge al den hukommelse, den er blevet tildelt |
| Løsning | Brug en hukommelsesstyringsalgoritme, der allokerer hukommelse i sammenhængende bidder, eller brug en komprimeringsalgoritme, der flytter processer rundt for at frigøre sammenhængende hukommelse | Brug en hukommelsesstyringsalgoritme, der allokerer hukommelse i sammenhængende bidder, eller brug en komprimeringsalgoritme, der flytter data rundt i en blok for at frigøre sammenhængende hukommelse |