Intern vs Ekstern Fragmentering
Forskjellen mellom intern og ekstern fragmentering er et tema av interesse for mange som liker å forbedre datakunnskapene sine. Før vi vet denne forskjellen, må vi se hva fragmentering er. Fragmentering er et fenomen som oppstår i datamaskinens minne som Random Access Memory (RAM) eller harddisker, som forårsaker sløsing og ineffektiv bruk av ledig plass. Selv om effektiv bruk av tilgjengelig plass hindres, forårsaker dette også ytelsesproblemer. Intern fragmentering oppstår når minneallokering er basert på partisjoner med fast størrelse, hvor etter at en liten applikasjon er tilordnet til et spor, er den gjenværende ledige plassen til det sporet bortkastet. Ekstern fragmentering oppstår når minnet er dynamisk allokert hvor etter lasting og lossing av flere spor her og der blir ledig plass distribuert i stedet for å være sammenhengende.
Hva er intern fragmentering?
Tenk på figuren ovenfor der en minneallokeringsmekanisme med fast størrelse følges. Til å begynne med er minnet tomt og allokatoren har delt opp minnet i partisjoner med fast størrelse. Senere har tre programmer k alt A, B, C blitt lastet til de tre første partisjonene mens den fjerde partisjonen fortsatt er ledig. Program A samsvarer med størrelsen på partisjonen, så det er ingen sløsing i den partisjonen, men Program B og Program C er mindre enn partisjonsstørrelsen. Så i del sjon 2 og partisjon 3 er det ledig plass igjen. Denne ledige plassen er imidlertid ubrukelig ettersom minneallokatoren bare tildeler fulle partisjoner til programmer, men ikke deler av den. Denne sløsingen med ledig plass kalles intern fragmentering.
I eksemplet ovenfor er det faste partisjoner av samme størrelse, men dette kan til og med skje i en situasjon der partisjoner med forskjellige faste størrelser er tilgjengelige. Vanligvis er minnet eller den vanskeligste plassen delt inn i blokker som vanligvis er på størrelse med potenser på 2, for eksempel 2, 4, 8, 16 byte. Så et program eller en fil på 3 byte vil bli tildelt en 4 byte blokk, men én byte av den blokken vil bli ubrukelig og forårsake intern fragmentering.
Hva er ekstern fragmentering?
Tenk på figuren ovenfor der minneallokering gjøres dynamisk. Ved dynamisk minneallokering tildeler allokatoren bare den nøyaktige nødvendige størrelsen for det programmet. Første minne er helt gratis. Deretter blir programmene A, B, C, D og E av forskjellige størrelser lastet etter hverandre, og de plasseres i minnet sammenhengende i den rekkefølgen. Senere lukkes Program A og Program C og de lastes ut av minnet. Nå er det tre ledige plassområder i minnet, men de er ikke tilstøtende. Nå skal et stort program k alt Program F lastes, men ingen av blokkene med ledig plass er ikke nok for Program F. Tillegget av alle ledige plassene er definitivt nok for Program F, men på grunn av mangelen på tilstøtende plass er denne plassen. ubrukelig for program F. Dette kalles ekstern fragmentering.
Hva er forskjellen mellom intern og ekstern fragmentering?
• Intern fragmentering oppstår når en minneallokeringsteknikk med fast størrelse brukes. Ekstern fragmentering oppstår når en dynamisk minneallokeringsteknikk brukes.
• Intern fragmentering oppstår når en partisjon med fast størrelse tilordnes til et program/fil med mindre størrelse enn partisjonen, noe som gjør resten av plassen i den partisjonen ubrukelig. Ekstern fragmentering skyldes mangel på nok tilstøtende plass etter lasting og lossing av programmer eller filer en stund, fordi da blir all ledig plass distribuert her og der.
• Ekstern fragmentering kan utvinnes ved komprimering der de tildelte blokkene flyttes til en side, slik at sammenhengende plass oppnås. Imidlertid tar denne operasjonen tid, og også visse kritiske tildelte områder, for eksempel systemtjenester, kan ikke flyttes trygt. Vi kan observere dette komprimeringstrinnet gjort på harddisker når vi kjører diskdefragmentering i Windows.
• Ekstern fragmentering kan forhindres ved hjelp av mekanismer som segmentering og personsøking. Her gis en logisk sammenhengende virtuelt minneplass mens filene/programmene i realiteten er delt opp i deler og plassert her og der.
• Intern fragmentering kan lemlestes ved å ha partisjoner i flere størrelser og tilordne et program basert på best passform. Fortsatt intern fragmentering er imidlertid ikke fullstendig eliminert.
Sammendrag:
Intern vs Ekstern Fragmentering
Både intern fragmentering og ekstern fragmentering er fenomener hvor minnet er bortkastet. Intern fragmentering skjer i minneallokering med fast størrelse mens ekstern fragmentering skjer i dynamisk minneallokering. Når en tildelt partisjon er okkupert av et program som er mindre enn partisjonen, går gjenværende plass bort og forårsaker intern fragmentering. Når nok tilstøtende plass ikke kan bli funnet etter lasting og lossing av programmer, på grunn av at ledig plass er distribuert her og der, forårsaker dette ekstern fragmentering. Fragmentering kan forekomme i alle minneenheter som RAM, harddisk og flash-stasjoner.