De hovedforskjell mellom intern og ekstern fragmentering er det, I intern fragmentering er minneblokken som er tilordnet en prosess stor, så de gjenværende delene kan ikke brukes til annen prosess. Men i ekstern fragmentering er den totale minneplassen nok til å oppholde seg i en prosess. Det er imidlertid ikke sammenhengende, slik at plassen ikke er brukt.
Fragmentering er prosessen som deler en ledig plass i mindre seksjoner. Det kan oppstå på grunn av vanskeligheter med å tildele minneblokker til en prosess som de er mindre i størrelse enn nødvendig. Dette problemet kan forårsake minneavbrudd ettersom minneblokkene forblir ubrukte. Det er to typer fragmentering kalt intern og ekstern fragmentering.
1. Hva er fragmentering
- Definisjon, funksjonalitet
2. Hva er intern fragmentering
- Definisjon, funksjonalitet
3. Hva er ekstern fragmentering
- Definisjon, funksjonalitet
4. Forskjellen mellom intern og ekstern fragmentering
- Sammenligning av nøkkelforskjeller
Intern Fragmentering, Ekstern Fragmentering, Fragmentering, Operativsystem
Når en prosess er lastet og fjernet fra minnet, er det frie rommet delt inn i små biter. Disse minneblokkene er små i størrelse, og det er ikke mulig å allokere dem for samme prosess eller en annen prosess. Derfor forblir disse minneblokkene ubrukte. Dette problemet kalles fragmentering.
For eksempel, anta at det er en prosess (p1) i hovedminnet. Det tar 4 MB plass. Deretter fjernes det fra hovedminne og lagres i sekundærminnet. Den første minneplassen som tilhørte p1 er nå et ledig rom. Denne plassen er delt inn i mindre seksjoner som 2MB og 2MB. Hvis prosessen p1 må tildeles hovedminne, kan den ikke bruke det forrige rommet som det allerede er delt. Så er minnesplassen ubrukt.
I intern fragmentering er minneblokken som er tilordnet en prosess, større enn nødvendig. Derfor blir noen deler av minnet ubrukt. Denne plassen kan ikke brukes til annen prosess. Anta at det er en prosess p1 som er 3MB. Det er 4 MB tildelt for prosessen i hovedminnet. Det er ikke mulig å bruke de resterende 1 MB til en annen prosess. Denne 1 MB er bortkastet. Dette spildet kalles intern fragmentering.
Figur 1: Intern fragmentering
Hvis det totale minneområdet er nok til å opprettholde en prosess, men det ikke er kontinuerlig, er det fortsatt ikke mulig å bruke det plassen til en prosess. Denne typen fragmentering kalles ekstern fragmentering. Anta at prosessen er 4MB. Det er 2 MB, 1 MB og 1 MB mellomrom i minnet. Det totale minnet er nok til å oppholde seg i prosessen. Men disse mellomrommene er ikke sammenhengende da de er på forskjellige steder. Derfor forblir rommet ubrukt. Dette er ekstern fragmentering.
Komprimerings- eller shuffle-minne er en løsning på ekstern fragmentering. Det vil plassere alt ledig minne sammen i en stor blokk.
Figur 2: Komprimering
I følge diagrammet ovenfor er det ledig plass etter p1 og p2. Det er en plass etter p3, p4 og p5. Derfor er alle prosesser komprimert til den ene siden. Nå er det en kontinuerlig ledig plass. Det er mulig å allokere det ledige rommet til en annen prosess. Alle ledig plass er tilgjengelig på ett sted.
Intern fragmentering er en form for fragmentering som oppstår når det er rester av deler av minnet på grunn av tildeling av store blokker med minne for en prosess enn nødvendig. Ekstern fragmentering er en form for fragmentering som oppstår når det er nok minne tilgjengelig for å tildele prosessen, men det tilgjengelige minnet er ikke sammenhengende.
I intern fragmentering er minneblokken som er tilordnet en prosess stor. Derfor gjenværende del er ubrukt fordi den ikke kan tilordnes til en annen prosess. I ekstern fragmentering er minneplass nok til å oppholde seg i en prosess, men det er ikke sammenhengende. Derfor kan ikke denne plassen brukes til allokering.
Løsningen for intern fragmentering er å tilordne partisjoner som er store nok til prosessene. Komprimering eller shuffle minneinnhold er løsningen for å overvinne ekstern fragmentering.
Ved intern fragmentering er minneblokken som er tilordnet en prosess stor, så de resterende delene kan ikke brukes til en annen prosess. I ekstern fragmentering er det totalt nok minne for å opprettholde en prosess, men det er ikke sammenhengende, slik at plassen ikke er brukt. Dette er hovedforskjellen mellom intern og ekstern fragmentering.
1. "Operating System Memory Management." Www.tutorialspoint.com, Tutorials Point, 8. januar 2018, Tilgjengelig her.