Differenza tra frammentazione interna ed esterna

Sommario:

Differenza tra frammentazione interna ed esterna
Differenza tra frammentazione interna ed esterna

Video: Differenza tra frammentazione interna ed esterna

Video: Differenza tra frammentazione interna ed esterna
Video: BEP - MARGINE DI SICUREZZA - RISULTATO ECONOMICO ESERCIZIO SVOLTO 2024, Novembre
Anonim

Frammentazione interna ed esterna

La differenza tra frammentazione interna ed esterna è un argomento di interesse per molti a cui piace migliorare le proprie conoscenze informatiche. Prima di conoscere questa differenza, dobbiamo vedere cos'è la frammentazione. La frammentazione è un fenomeno che si verifica nella memoria del computer come la RAM (Random Access Memory) o nei dischi rigidi, che provoca sprechi e utilizzo inefficiente dello spazio libero. Sebbene l'utilizzo efficiente dello spazio disponibile sia ostacolato, ciò causa anche problemi di prestazioni. La frammentazione interna si verifica quando l'allocazione della memoria si basa su partizioni di dimensioni fisse in cui dopo l'assegnazione di un'applicazione di piccole dimensioni a uno slot, lo spazio libero rimanente di tale slot viene sprecato. La frammentazione esterna si verifica quando la memoria viene allocata dinamicamente dove, dopo il caricamento e lo scaricamento di diversi slot qua e là, lo spazio libero viene distribuito anziché essere contiguo.

Cos'è la frammentazione interna?

Differenza tra frammentazione interna ed esterna_frammentazione interna
Differenza tra frammentazione interna ed esterna_frammentazione interna
Differenza tra frammentazione interna ed esterna_frammentazione interna
Differenza tra frammentazione interna ed esterna_frammentazione interna

Considera la figura sopra in cui viene seguito un meccanismo di allocazione della memoria di dimensioni fisse. Inizialmente, la memoria è vuota e l'allocatore ha diviso la memoria in partizioni di dimensioni fisse. Successivamente tre programmi denominati A, B, C sono stati caricati nelle prime tre partizioni mentre la 4a partizione è ancora libera. Il programma A corrisponde alla dimensione della partizione, quindi non ci sono sprechi in quella partizione, ma il programma B e il programma C sono più piccoli della dimensione della partizione. Quindi nella parte 2 e nella partizione 3 c'è spazio libero rimanente. Tuttavia, questo spazio libero è inutilizzabile poiché l'allocatore di memoria assegna solo partizioni complete ai programmi ma non parti di esso. Questo spreco di spazio libero è chiamato frammentazione interna.

Nell'esempio sopra, si tratta di partizioni fisse di dimensioni uguali, ma ciò può accadere anche in una situazione in cui sono disponibili partizioni di varie dimensioni fisse. Di solito la memoria o lo spazio più rigido è diviso in blocchi che di solito hanno la dimensione di potenze di 2 come 2, 4, 8, 16 byte. Quindi un programma o un file di 3 byte verrà assegnato a un blocco di 4 byte ma un byte di quel blocco diventerà inutilizzabile causando la frammentazione interna.

Cos'è la frammentazione esterna?

Differenza tra frammentazione interna ed esterna_frammentazione esterna
Differenza tra frammentazione interna ed esterna_frammentazione esterna
Differenza tra frammentazione interna ed esterna_frammentazione esterna
Differenza tra frammentazione interna ed esterna_frammentazione esterna

Considera la figura sopra in cui l'allocazione della memoria viene eseguita in modo dinamico. Nell'allocazione dinamica della memoria, l'allocatore assegna solo la dimensione esatta necessaria per quel programma. La prima memoria è completamente libera. Quindi i Programmi A, B, C, D ed E di diverse dimensioni vengono caricati uno dopo l' altro e vengono posti in memoria contigui in quest'ordine. Successivamente, il Programma A e il Programma C si chiudono e vengono scaricati dalla memoria. Ora ci sono tre aree di spazio libero nella memoria, ma non sono adiacenti. Ora verrà caricato un grande programma chiamato Programma F ma nessuno dei blocchi di spazio libero non è sufficiente per il Programma F. L'aggiunta di tutti gli spazi liberi è sicuramente sufficiente per il Programma F, ma a causa della mancanza di adiacenza quello spazio è inutilizzabile per il programma F. Questa si chiama Frammentazione Esterna.

Qual è la differenza tra la frammentazione interna ed esterna?

• La frammentazione interna si verifica quando viene utilizzata una tecnica di allocazione della memoria di dimensioni fisse. La frammentazione esterna si verifica quando viene utilizzata una tecnica di allocazione dinamica della memoria.

• La frammentazione interna si verifica quando una partizione di dimensioni fisse viene assegnata a un programma/file con dimensioni inferiori alla partizione, rendendo inutilizzabile il resto dello spazio in quella partizione. La frammentazione esterna è dovuta alla mancanza di spazio adiacente sufficiente dopo il caricamento e lo scaricamento di programmi o file per un po' di tempo perché tutto lo spazio libero viene distribuito qua e là.

• La frammentazione esterna può essere estratta mediante la compattazione in cui i blocchi assegnati vengono spostati da un lato, in modo da guadagnare spazio contiguo. Tuttavia, questa operazione richiede tempo e anche alcune aree critiche assegnate, ad esempio i servizi di sistema, non possono essere spostate in sicurezza. Possiamo osservare questo passaggio di compattazione eseguito sui dischi rigidi durante l'esecuzione dell'utilità di deframmentazione del disco in Windows.

• La frammentazione esterna può essere impedita da meccanismi come la segmentazione e il paging. Qui viene fornito uno spazio di memoria virtuale contiguo logico mentre in re altà i file/programmi vengono suddivisi in parti e posizionati qua e là.

• La frammentazione interna può essere ridotta disponendo di partizioni di diverse dimensioni e assegnando un programma basato sull'adattamento migliore. Tuttavia, la frammentazione interna ancora non è del tutto eliminata.

Riepilogo:

Frammentazione interna ed esterna

Sia la frammentazione interna che la frammentazione esterna sono fenomeni in cui la memoria viene sprecata. La frammentazione interna si verifica nell'allocazione di memoria di dimensioni fisse mentre la frammentazione esterna si verifica nell'allocazione di memoria dinamica. Quando una partizione allocata è occupata da un programma inferiore alla partizione, lo spazio rimanente va sprecato causando la frammentazione interna. Quando non è possibile trovare abbastanza spazio adiacente dopo il caricamento e lo scaricamento dei programmi, a causa del fatto che lo spazio libero è distribuito qua e là, ciò provoca la frammentazione esterna. La frammentazione può verificarsi in qualsiasi dispositivo di memoria come RAM, disco rigido e unità flash.

Consigliato: