Differenza tra frammentazione interna ed esterna

Il differenza principale tra la frammentazione interna ed esterna è quella, nella frammentazione interna, il blocco di memoria assegnato a un processo è grande, quindi le porzioni rimanenti non possono essere utilizzate per altri processi. Ma, nella frammentazione esterna, lo spazio di memoria totale è sufficiente per risiedere in un processo. Tuttavia, non è contiguo, quindi lo spazio non è utilizzato.

La frammentazione è il processo che divide uno spazio di memoria libero in sezioni più piccole. Può verificarsi a causa della difficoltà nell'assegnazione dei blocchi di memoria a un processo in quanto sono di dimensioni più piccole rispetto a quelle richieste. Questo problema può causare uno spreco di memoria poiché i blocchi di memoria rimangono inutilizzati. Esistono due tipi di frammentazione denominati frammentazione interna ed esterna.

Aree chiave coperte

1. Cos'è la frammentazione
       - Definizione, Funzionalità
2. Cos'è la frammentazione interna
      - Definizione, Funzionalità
3. Cos'è la frammentazione esterna
     - Definizione, Funzionalità
4. Differenza tra frammentazione interna ed esterna
     - Confronto tra le principali differenze

Parole chiave

Frammentazione interna, frammentazione esterna, frammentazione, sistema operativo

Cos'è la frammentazione

Quando un processo viene caricato e rimosso dalla memoria, quello spazio libero viene diviso in piccoli pezzi. Questi blocchi di memoria sono di piccole dimensioni e non è possibile allocarli per lo stesso processo o qualche altro processo. Pertanto, quei blocchi di memoria rimangono inutilizzati. Questo problema è chiamato frammentazione.

Ad esempio, supponiamo che ci sia un processo (p1) nella memoria principale. Ci vogliono 4 MB di spazio. Quindi viene rimosso dalla memoria principale e archiviato nella memoria secondaria. Quello spazio di memoria iniziale che apparteneva a p1 ora è uno spazio libero. Questo spazio è diviso in sezioni più piccole come 2 MB e 2 MB. Se il processo p1 deve essere allocato alla memoria principale, non può usare quello spazio precedente poiché è già diviso. Quindi, quello spazio di memoria rimane inutilizzato.

Cos'è la frammentazione interna

Nella frammentazione interna, il blocco di memoria assegnato a un processo è più grande del necessario. Pertanto, alcune parti della memoria non vengono utilizzate. Quello spazio non può essere usato per qualche altro processo. Supponiamo che esista un processo p1 che è 3MB. C'è 4 MB allocati per quel processo nella memoria principale. Non è possibile utilizzare il restante 1 MB in qualche altro processo. Questo 1 MB è sprecato. Questo spreco è chiamato frammentazione interna.

Figura 1: frammentazione interna

Cos'è la frammentazione esterna

Se lo spazio di memoria totale è sufficiente per risiedere in un processo, ma non è continuo, non è ancora possibile utilizzare quello spazio per un processo. Questo tipo di frammentazione è chiamato frammentazione esterna. Supponi che il processo sia 4 MB. Ci sono 2 MB, 1 MB e 1 MB di spazio nella memoria. La memoria totale è sufficiente per risiedere nel processo. Ma quegli spazi non sono contigui come sono in varie posizioni. Pertanto, lo spazio rimane inutilizzato. Questa è la frammentazione esterna.

La memoria di compattazione o shuffle è una soluzione alla frammentazione esterna. Metterà tutta la memoria libera insieme in un unico grande blocco.

Figura 2: compattazione

Secondo il diagramma sopra, c'è uno spazio libero dopo p1 e p2. C'è uno spazio dopo p3, p4 e p5. Pertanto, tutti i processi sono compattati su un lato. Ora c'è uno spazio libero continuo. È possibile allocare quello spazio libero in qualche altro processo. Tutti gli spazi liberi sono disponibili in un'unica posizione.

Differenza tra frammentazione interna ed esterna

Definizione

La frammentazione interna è una forma di frammentazione che si verifica quando rimangono delle sezioni di memoria a causa dell'allocazione di grandi blocchi di memoria per un processo del necessario. La frammentazione esterna è una forma di frammentazione che si verifica quando c'è abbastanza memoria disponibile da allocare per il processo ma quella memoria disponibile non è contigua.

Funzionalità

Nella frammentazione interna, il blocco di memoria assegnato a un processo è grande. Pertanto, la parte rimanente non viene utilizzata poiché non può essere assegnata a un altro processo. Nella frammentazione esterna, lo spazio di memoria è sufficiente per risiedere in un processo, ma non è contiguo. Pertanto, tale spazio non può essere utilizzato per l'assegnazione.

Soluzione

La soluzione per la frammentazione interna consiste nell'assegnare partizioni sufficientemente grandi per i processi. Il contenuto della memoria di compattazione o shuffle è la soluzione per superare la frammentazione esterna.

Conclusione

Nella frammentazione interna, il blocco di memoria assegnato a un processo è grande, quindi le porzioni rimanenti non possono essere utilizzate per altri processi. Nella frammentazione esterna, lo spazio di memoria totale è sufficiente per risiedere in un processo, ma non è contiguo, quindi lo spazio non è utilizzato. Questa è la principale differenza tra frammentazione interna ed esterna.

Riferimento:

1. "Gestione della memoria del sistema operativo". Www.tutorialspoint.com, Tutorials Point, 8 gennaio 2018, disponibile qui.