Forskellen mellem intern og ekstern fragmentering er et emne af interesse for mange, der kan lide at forbedre deres computerkendskab. Før vi kender denne forskel, er vi nødt til at se, hvad fragmentering er. Fragmentering er et fænomen, der forekommer i computerhukommelse såsom RAM (Random Access Memory) eller harddiske, hvilket forårsager spild og ineffektiv brug af ledig plads. Selv om den effektive brug af ledig plads hindres, forårsager dette også ydelsesproblemer. Intern fragmentering opstår, når hukommelsesallokering er baseret på partitioner i fast størrelse, hvor efter en applikation med lille størrelse er tildelt en slot, den resterende ledige plads på det slot spildes. Ekstern fragmentering opstår, når hukommelsen fordeles dynamisk, hvor efter indlæsning og aflæsning af flere slots her og der den frie plads distribueres snarere end at være sammenhængende.
Overvej figuren ovenfor, hvor en fast tildelingsmekanisme for fast størrelse følges. Oprindeligt er hukommelsen tom, og tildeleren har opdelt hukommelsen i partitioner i fast størrelse. Derefter er tre programmer, der hedder A, B, C, blevet indlæst til de første tre partitioner, mens den 4. partition stadig er gratis. Program A matcher størrelsen på partitionen, så der er ingen spild i denne partition, men Program B og Program C er mindre end partitionsstørrelsen. Så i del ition 2 og partition 3 er der resterende ledig plads. Denne frie plads er imidlertid ubrugelig, da hukommelsesallokatoren kun tildeler fuld partitioner til programmer, men ingen t dele deraf. Dette spild af frit rum kaldes intern fragmentering.
I ovenstående eksempel er det faste partitioner i samme størrelse, men dette kan endda ske i en situation, hvor partitioner af forskellige faste størrelser er tilgængelige. Normalt er hukommelsen eller den hårdeste plads opdelt i blokke, der normalt er størrelsen på kræfter på 2, såsom 2, 4, 8, 16 byte. Så et program eller en fil på 3 byte vil blive tildelt en 4 byte-blok, men en byte af denne blok vil blive ubrugelig, hvilket forårsager intern fragmentering.
Overvej figuren ovenfor, hvor hukommelsesallokering udføres dynamisk. Ved dynamisk hukommelsesallokering tildeler allokatoren kun den nøjagtige nødvendige størrelse til det pågældende program. Den første hukommelse er helt gratis. Derefter indlæses programmerne A, B, C, D og E i forskellige størrelser efter hinanden, og de placeres sammenhængende i den rækkefølge. Senere lukkes program A og program C, og de fjernes fra hukommelsen. Nu er der tre ledige pladsområder i hukommelsen, men de er ikke tilstødende. Nu vil et stort program kaldet Program F blive indlæst, men ingen af den frie pladsblok er ikke nok til Program F. Tilsætningen af alle de frie pladser er bestemt nok til Program F, men på grund af manglen på adskillelse er pladsen ubrugelig til program F. Dette kaldes ekstern fragmentering.
• Intern fragmentering opstår, når der bruges en teknik til hukommelsesallokering med fast størrelse. Ekstern fragmentering opstår, når der bruges en dynamisk hukommelsestildelingsteknik.
• Intern fragmentering opstår, når en fast størrelse-partition er tildelt et program / fil med mindre størrelse end partitionen, hvilket gør resten af pladsen i denne partition ubrugelig. Ekstern fragmentering skyldes manglen på tilstrækkelig tilstødende plads efter indlæsning og aflæsning af programmer eller filer i nogen tid, for da fordeles al ledig plads her og der.
• Ekstern fragmentering kan udvindes ved komprimering, hvor de tildelte blokke flyttes til den ene side, så der opnås sammenhængende plads. Denne operation tager dog tid, og visse kritiske tildelte områder, f.eks. Systemtjenester, kan ikke flyttes sikkert. Vi kan observere dette komprimeringstrin, der udføres på harddiske, når du kører diskdefragmentering i Windows.
• Ekstern fragmentering kan forhindres ved hjælp af mekanismer som segmentering og personsøgning. Her gives en logisk sammenhængende virtuel hukommelsesplads, mens filerne / programmerne i virkeligheden er opdelt i dele og placeret her og der.
• Intern fragmentering kan dæmpes ved at have partitioner i flere størrelser og tildele et program baseret på den bedste pasform. Imidlertid elimineres stadig intern fragmentering ikke fuldt ud.
Resumé:
Både intern fragmentering og ekstern fragmentering er fænomener, hvor hukommelse spildes. Intern fragmentering finder sted i hukommelsesallokering med fast størrelse, mens ekstern fragmentering sker i dynamisk hukommelsesallokering. Når en allokeret partition besættes af et program, der er mindre end partitionen, spildes resterende plads, hvilket forårsager intern fragmentering. Når der ikke findes nok tilstødende plads efter indlæsning og aflæsning af programmer på grund af det faktum, at ledig plads er fordelt her og der, forårsager dette ekstern fragmentering. Fragmentering kan forekomme i enhver hukommelsesenhed, såsom RAM, harddisk og Flash-drev.