Differenza tra frammentazione interna ed esterna in informatica

Differenza tra frammentazione interna ed esterna in informatica

Frammentazione interna

La frammentazione interna (in inglese Internal fragmentation) si verifica quando a un processo viene allocata più memoria del necessario e, pertanto, viene lasciato poco spazio inutilizzato. Per esempio:

Quando al processo 1 con la dimensione di 10 KB viene assegnato un blocco di 12 KB, lo spazio di 2 KB rimane inutilizzato. Ora, quando al processo 2, con dimensione 10 KB viene allocato un blocco di 0 KB, nessuno spazio viene lasciato inutilizzato. Quando al processo 3 con dimensione 12 KB viene assegnato un blocco di 13 KB, 1 KB non viene utilizzato.  Da questo esempio, a 2 processi viene assegnato spazio in più del necessario e questo spazio inutilizzato è così piccolo da memorizzare un nuovo processo e viene sprecato. Questa è la cosiddetta frammentazione interna.

Frammentazione esterna

La frammentazione esterna (in inglese External Fragmentation) si verifica quando un algoritmo di allocazione della memoria dinamica alloca una parte della memoria e ne rimane una piccola parte che non può essere utilizzata in modo efficace. Se si verifica una frammentazione esterna eccessiva, la quantità di memoria utilizzabile viene drasticamente ridotta. Lo spazio di memoria totale esiste per soddisfare una richiesta ma non è contiguo. I blocchi frammentati esterni sono disponibili per l’allocazione, ma potrebbero essere troppo piccoli per essere utili.

Differenza tra frammentazione interna ed esterna in informatica

Differenza tra frammentazione interna ed esterna

BASE DI CONFRONTO  FRAMMENTAZIONE INTERNA FRAMMENTAZIONE ESTERNA
Evento La frammentazione esterna si verifica a causa della mancanza di spazio adiacente sufficiente dopo il caricamento e lo scaricamento di programmi o file per un po ‘di tempo, perché poi tutto lo spazio libero viene distribuito qua e là. La frammentazione interna si verifica quando una partizione di dimensione fissa viene assegnata a un programma / file con dimensioni inferiori alla partizione, rendendo inutilizzabile il resto dello spazio in quella partizione.   
Condizione La frammentazione interna si verifica quando viene utilizzata una tecnica di allocazione della memoria di dimensione fissa. La frammentazione esterna si verifica quando viene utilizzata una tecnica di allocazione dinamica della memoria.  
Prevenzione La frammentazione interna può essere prevenuta disponendo di partizioni di diverse dimensioni e assegnando un programma in base alla migliore corrispondenza. La frammentazione esterna può essere prevenuta con metodi come il paging e la segmentazione in cui viene fornito uno spazio di memoria virtuale contiguo logico mentre in realtà i file / programmi sono separati in parti e posizionati qua e là.
Processi Nella frammentazione interna, i blocchi di dimensioni fisse lo spazio rimanente in un blocco non può essere utilizzato per altri processi. Nella frammentazione esterna il processo rimosso lascia uno spazio o un buco e la memoria appare come una raccolta di piccoli fori piuttosto che come un blocco.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *