Skillnad mellan intern och extern fragmentering | Intern vs Extern fragmentering
Intern vs extern fragmentering
Skillnad mellan intern och extern fragmentering är ett ämne av intresse för många som gillar att förbättra sin kunskap om datorn. Innan vi vet denna skillnad måste vi se hur fragmenteringen är. Fragmentering är ett fenomen som uppträder i datorminnet, t.ex. Random Access Memory (RAM) eller hårddiskar, vilket orsakar slöseri och ineffektiv användning av ledigt utrymme. Den effektiva användningen av ledigt utrymme hindras, men det medför även prestationsproblem. Intern fragmentering uppstår när minnetilldelningen är baserad på partitioner med fast storlek där, efter att en applikation med liten storlek har tilldelats en slits, släpps det återstående lediga utrymmet i den slitsen. Extern fragmentering uppstår när minnet är dynamiskt allokerat där efter att ha laddat och lossat flera slitsar här och där, fördelas det fria utrymmet i stället för att vara angränsande.
Vad är intern fragmentering?
Tänk på ovanstående figur där en minnesallokeringsmekanism med fast storlek följs. Initialt är minnet tomt och tilldelaren har delat minnet i partitioner med fast storlek. Senare har tre program med namnet A, B, C laddats till de första tre partitionerna medan den fjärde partitionen fortfarande är ledig. Program A matchar partitionens storlek, så det finns inget slöseri i den partitionen, men Program B och Program C är mindre än partitionsstorleken. Så delvis del 2 och partition 3 finns det kvar ledigt utrymme. Detta lediga utrymme är dock oanvändbart, eftersom minnetilldelaren endast tilldelar fullständiga partitioner till program men inga delar av det. Detta slöseri med ledigt utrymme kallas intern fragmentering.
I det ovanstående exemplet är det lika stora partitioner av fast storlek men detta kan till och med ske i en situation där partitioner av olika fasta storlekar finns tillgängliga. Vanligtvis är minnet eller det svåraste utrymmet uppdelat i block som vanligen är storleken på krafterna på 2 såsom 2, 4, 8, 16 byte. Så ett program eller en fil med 3 byte kommer att tilldelas ett 4 byte-block, men en byte av det blocket blir oanvändbart och orsakar intern fragmentering.
Vad är extern fragmentering?
Tänk på ovanstående figur där minnesallokering görs dynamiskt. Vid dynamisk minnesallokering allokerar allokern endast den exakta nödvändiga storleken för det programmet.Första minnet är helt gratis. Därefter laddas program A, B, C, D och E av olika storlekar efter varandra och de placeras i minnet sammanhängande i den ordningen. Senare stängs Program A och Program C och de laddas ur minnet. Nu finns det tre lediga utrymme i minnet, men de är inte angränsande. Nu kommer ett stort program som heter Program F att laddas men inget av det fria mellanspalten räcker inte för Program F. Tillägget av alla fria utrymmen är definitivt tillräckligt för Program F, men på grund av bristen på adjacency är det utrymme oanvändbar för program F. Detta kallas extern fragmentering.
Vad är skillnaden mellan intern och extern fragmentering?
• Intern fragmentering uppstår när en minnesallokeringsteknik med fast storlek används. Extern fragmentering uppstår när en dynamisk minnesallokeringsteknik används.
• Intern fragmentering uppstår när en partition med fast storlek tilldelas ett program / fil med mindre storlek än partitionen vilket gör resten av utrymmet i den partitionen oanvändbar. Extern fragmentering beror på bristen på tillräckligt intilliggande utrymme efter lastning och lossning av program eller filer under en tid eftersom all fri ledighet distribueras här och där.
• Extern fragmentering kan brytas av komprimering där de tilldelade blocken flyttas till ena sidan, så att det intilliggande utrymmet uppnås. Denna operation tar dock tid och även vissa kritiska tilldelade områden, till exempel kan systemtjänster inte flyttas säkert. Vi kan observera detta komprimeringssteg gjort på hårddiskar när du kör diskdefragmenteraren i Windows.
• Extern fragmentering kan förebyggas genom mekanismer som segmentering och personsökning. Här ges ett logiskt sammanhängande virtuellt minnesutrymme medan filerna / programmen i själva verket delas upp i delar och placeras här och där.
• Intern fragmentering kan minimeras genom att ha partitioner av flera storlekar och tilldela ett program baserat på bästa passform. Emellertid är fortfarande intern fragmentering inte fullständigt eliminerad.
Sammanfattning:
Intern vs extern fragmentering
Både intern fragmentering och extern fragmentering är fenomen där minnet är bortkastat. Intern fragmentering sker i minnesallokering med fast storlek medan extern fragmentering uppträder vid dynamisk minnesallokering. När en tilldelad partition upptas av ett program som är mindre än partitionen, förblir återstående utrymme slöseri vilket orsakar intern fragmentering. När det inte finns tillräckligt med intilliggande utrymme efter laddning och lossning av program, beror det på att fritt utrymme distribueras här och där, vilket orsakar extern fragmentering. Fragmentering kan förekomma i vilken som helst minnesenhet som RAM, hårddisk och flash-enheter.