Rekommenderas, 2024

Redaktionen

Skillnad mellan intern och extern fragmentering

När en process laddas eller tas bort från det fysiska minnesblocket skapas det ett litet hål i minnesutrymmet som kallas fragment. På grund av fragmentering misslyckas systemet att allokera det intilliggande minnesutrymmet till en process även om den har den begärda mängden minne men på ett icke sammanhängande sätt. Uppdelningen klassificeras ytterligare i två kategorier intern och extern fragmentering.

Både den interna och externa klassificeringen påverkar systemets åtkomsthastighet. De har en grundläggande skillnad mellan dem, dvs intern fragmentering uppstår när minnesblock med fast storlek tilldelas processen utan att det rör sig om processens storlek och extern fragmentering uppstår när processerna tilldelas minne dynamiskt. Låt oss gå vidare och diskutera skillnader, orsaker, lösningar bakom intern och extern fragmentering med hjälp av jämförelsetabellen nedan.

Jämförelsediagram

Grunder för jämförelseIntern fragmenteringExtern fragmentering
GrundläggandeDet uppstår när minnesblock med fast storlek är tilldelade till processerna.Det uppstår när minnesutrymmet i variabel storlek tilldelas processerna dynamiskt.
FörekomstNär minnet som tilldelats processen är något större än det minne som begärs av processen skapas detta ledigt utrymme i det tilldelade blocket vilket orsakar intern fragmentering.När processen tas bort från minnet skapas det lediga utrymmet i minnet som orsakar extern fragmentering.
LösningMinnet måste delas in i block med variabel storlek och tilldela det bästa anpassningsblocket till processen.Komprimering, personsökning och segmentering.

Definition av intern fragmentering

Intern fragmentering uppstår när minnet är uppdelat i block med fast storlek . Närhelst en processbegäran för minnet tilldelas det fixerade blocket till processen. Om minnet som tilldelats processen är något större än det begärda minnet, är skillnaden mellan tilldelat och efterfrågat minne intern fragmentering .

Detta kvarvarande utrymme inuti blocket med fast storlek kan inte tilldelas någon process eftersom det inte skulle vara tillräckligt för att tillfredsställa minnesförfrågan genom processen. Låt oss förstå intern fragmentering med hjälp av ett exempel. Minnesutrymmet är partitionerat i de fasta blocken med 18.464 byte. Låt oss säga en processförfrågan på 18.460 byte och partitionerat faststort block med 18.464 byte tilldelas processen. Resultatet är 4 byte av 18.464 byte förblev tomma, vilket är den inre fragmenteringen.

Överhuvudet för att hålla koll på internhålan skapad på grund av intern fragmentering är väsentligen mer än antalet inre hål. Problemet med intern fragmentering kan lösas genom att partitionera minnet i blocket med variabel storlek och tilldela blocket med den bästa storleken till en process som begär minne. Ändå kommer det inte helt att eliminera problemet med intern fragmentering men kommer att minska det till viss del.

Definition av extern fragmentering

Extern fragmentering uppstår när det finns tillräckligt med utrymme i minnet för att tillfredsställa minnesförfrågan hos en process. Men processens minneförfrågan kan inte uppfyllas, eftersom det tillgängliga minnet är på ett icke-sammanhängande sätt. Antingen du tillämpar först-passade eller passande minnesallokeringsstrategi kommer det att orsaka extern fragmentering.

När en process laddas och tas bort från minnet skapar det lediga rummet hålet i minnesutrymmet och det finns många sådana hål i minnesutrymmet, detta kallas extern fragmentering. Även om den första passformen och bästa passformen kan påverka mängden extern fragmentering, kan den inte helt elimineras. Komprimering kan vara lösningen för extern fragmentering.

Komprimeringsalgoritmen blandar allt minneinnehåll till ena sidan och frigör ett stort block av minne. Men komprimeringsalgoritmen är dyr. Det finns en alternativ lösning för att lösa extern fragmenteringsfråga som gör det möjligt för en process att förvärva fysiskt minne på ett icke sammanhängande sätt. Teknikerna för att uppnå denna lösning är personsökning och segmentering.

Viktiga skillnader mellan intern och extern fragmentering

  1. Den grundläggande orsaken till förekomsten av intern och extern fragmentering är att intern fragmentering uppträder när minnet är partitionerat i block med fast storlek medan extern fragmentering uppstår när minnet är partitionerat i block med variabel storlek .
  2. När minnesblocket tilldelat processen kommer ut att vara något större än önskat minne, orsakar det lediga utrymme kvar i det tilldelade minnesblocket intern fragmentering. Å andra sidan, när processen tas bort från minnet skapas det ledigt utrymme som orsakar ett hål i minnet som kallas extern fragmentering.
  3. Problemet med intern fragmentering kan lösas genom att partitionera minnet i block med variabel storlek och tilldela det bästa anpassningsblocket till den begärande processen. Lösningen för extern fragmentering komprimeras dock, men det är dyrt att genomföra, så processerna måste tillåtas förvärva fysiskt minne på ett icke sammanhängande sätt. För att uppnå detta införs tekniken för personsökning och segmentering.

Slutsats:

Problemet med intern fragmentering kan minskas, men det kan inte helt elimineras. Paging och segmentering hjälper till att utnyttja det utrymme som frigörs på grund av extern fragmentering genom att låta en process ta upp minnet på ett icke sammanhängande sätt.

Top