Skillnad mellan intern och extern fragmentering

De huvudskillnad mellan intern och extern fragmentering är det, i intern fragmentering är minnesblocket tilldelat en process stor så att de återstående delarna inte kan användas för någon annan process. Men i extern fragmentering är det totala minnesutrymmet tillräckligt för att vistas i en process. Det är dock inte angränsande, så att utrymmet är oanvänd.

Fragmentering är processen som delar ett ledigt minne i mindre sektioner. Det kan uppstå på grund av svårigheter att tilldela minnesblock till en process eftersom de är mindre än vad som krävs. Det här problemet kan orsaka minnesförlust eftersom minnesblocken är oanvända. Det finns två typer av fragmentering som kallas intern och extern fragmentering.

Viktiga områden som omfattas

1. Vad är fragmentering
       - Definition, Funktionalitet
2. Vad är intern fragmentering
      - Definition, Funktionalitet
3. Vad är extern fragmentering
     - Definition, Funktionalitet
4. Skillnad mellan intern och extern fragmentering
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

Intern fragmentering, Extern fragmentering, Fragmentering, Operativsystem

Vad är fragmentering

När en process laddas och tas bort från minnet delas det lediga rummet i små bitar. Dessa minnesblock är små i storlek, och det är inte möjligt att allokera dem för samma process eller någon annan process. Därför förblir dessa minnesblock oanvända. Denna fråga heter fragmentering.

Antag exempelvis att det finns en process (p1) i huvudminnet. Det tar 4 MB utrymme. Sedan tas den bort från huvudminnet och lagras i sekundärminnet. Det initiala minnesutrymmet som tillhörde p1 är nu ett ledigt utrymme. Det utrymmet är uppdelat i mindre sektioner som 2MB och 2MB. Om processen p1 måste tilldelas huvudminne kan den inte använda det tidigare utrymmet som det redan är uppdelat. Så det minnesutrymmet förblir oförbrukat.

Vad är intern fragmentering

Vid intern fragmentering är minnesblocket som tilldelats en process större än vad som krävs. Därför lämnas vissa delar av minnet oanvända. Det utrymme kan inte användas för någon annan process. Antag att det finns en process p1 som är 3MB. Det finns 4MB allokerade för den processen i huvudminnet. Det är inte möjligt att använda resterande 1 MB till någon annan process. Denna 1 MB är bortkastad. Detta slöseri kallas intern fragmentering.

Figur 1: Intern fragmentering

Vad är extern fragmentering

Om det totala minnesutrymmet är tillräckligt för att vistas i en process, men det är inte kontinuerligt, är det fortfarande inte möjligt att använda det här utrymmet för en process. Denna typ av fragmentering kallas extern fragmentering. Antag att processen är 4 MB. Det finns 2 MB, 1 MB och 1 MB utrymmen i minnet. Det totala minnet är tillräckligt för att vistas i processen. Men dessa utrymmen är inte angränsande eftersom de är på olika platser. Därför förblir utrymmet oanvänt. Detta är extern fragmentering.

Komprimerings- eller shuffle-minne är en lösning på extern fragmentering. Det kommer att placera allt ledigt minne tillsammans i ett stort block.

Figur 2: Komprimering

Enligt ovanstående diagram finns ett ledigt utrymme efter pl och p2. Det finns ett mellanslag efter p3, p4 och p5. Därför kompakteras alla processer till ena sidan. Nu finns det ett kontinuerligt ledigt utrymme. Det är möjligt att allokera det lediga rummet till en annan process. Alla lediga utrymmen är tillgängliga på ett ställe.

Skillnad mellan intern och extern fragmentering

Definition

Intern fragmentering är en form av fragmentering som uppstår när det finns delar av minnet kvar på grund av att stora block av minne är avsedda för en process än vad som krävs. Extern fragmentering är en form av fragmentering som uppstår när det finns tillräckligt med minne tillgängligt för processen, men det tillgängliga minnet är inte angränsande.

Funktionalitet

Vid intern fragmentering är minnesblocket tilldelat en process stor. Därför lämnas den återstående delen oanvänd eftersom den inte kan tilldelas en annan process. I extern fragmentering är minnesutrymmet tillräckligt för att vistas i en process, men det är inte angränsande. Därför kan detta utrymme inte användas för allokering.

Lösning

Lösningen för intern fragmentering är att tilldela partitioner som är tillräckligt stora för processerna. Komprimering eller blandning av minnesinnehåll är lösningen för att övervinna extern fragmentering.

Slutsats

Vid intern fragmentering är minnesblocket tilldelat en process stor så att de återstående delarna inte kan användas för någon annan process. I extern fragmentering är det totala minnesutrymmet tillräckligt för att vistas i en process, men det är inte angränsande, så att utrymmet inte används. Detta är den största skillnaden mellan intern och extern fragmentering.

Referens:

1. "Minne för hantering av operativsystem". Www.tutorialspoint.com, Tutorials Point, 8 Jan. 2018, Tillgänglig här.