Raccomandato, 2024

Scelta Del Redattore

Differenza tra frammentazione interna ed esterna

Ogni volta che un processo viene caricato o rimosso dal blocco di memoria fisica, crea un piccolo buco nello spazio di memoria che è chiamato frammento. A causa della frammentazione, il sistema non riesce ad allocare lo spazio di memoria contiguo a un processo anche se ha la quantità di memoria richiesta ma, in modo non contiguo. La frammentazione è ulteriormente classificata in due categorie Frammentazione interna ed esterna.

Sia la classificazione interna che quella esterna influenzano la velocità di accesso ai dati del sistema. Esse hanno una differenza fondamentale tra di loro, cioè la frammentazione interna si verifica quando i blocchi di memoria di dimensioni fisse vengono allocati al processo senza preoccuparsi delle dimensioni del processo e la frammentazione esterna si verifica quando i processi sono allocati in memoria dinamicamente. Andiamo oltre e discutiamo le differenze, le ragioni, le soluzioni dietro la frammentazione interna ed esterna con l'aiuto della tabella di comparazione mostrata sotto.

Grafico comparativo

Base per il confrontoFrammentazione internaFrammentazione esterna
Di baseSi verifica quando blocchi di memoria di dimensioni fisse vengono allocati ai processi.Si verifica quando lo spazio di memoria di dimensione variabile viene assegnato ai processi in modo dinamico.
avvenimentoQuando la memoria assegnata al processo è leggermente più grande della memoria richiesta dal processo, ciò crea uno spazio libero nel blocco assegnato che causa la frammentazione interna.Quando il processo viene rimosso dalla memoria, crea lo spazio libero nella memoria causando la frammentazione esterna.
SoluzioneLa memoria deve essere partizionata in blocchi di dimensioni variabili e assegnare il blocco più adatto al processo.Compattazione, impaginazione e segmentazione.

Definizione di frammentazione interna

La frammentazione interna si verifica quando la memoria è suddivisa in blocchi di dimensioni fisse . Ogni volta che una richiesta di processo per la memoria, il blocco di dimensioni fisse viene assegnato al processo. Nel caso in cui la memoria assegnata al processo sia leggermente più grande della memoria richiesta, la differenza tra la memoria assegnata e richiesta è la frammentazione interna .

Questo spazio rimanente all'interno del blocco di dimensioni fisse non può essere allocato a nessun processo in quanto non sarebbe sufficiente per soddisfare la richiesta di memoria da parte del processo. Cerchiamo di capire la frammentazione interna con l'aiuto di un esempio. Lo spazio di memoria è suddiviso in blocchi di dimensioni fisse di 18.464 byte. Diciamo che una richiesta di processo per 18.460 byte e un blocco partizionato a dimensione fissa di 18.464 byte è assegnato al processo. Il risultato è 4 byte di 18.464 byte rimasti vuoti, che è la frammentazione interna.

L'overhead di tenere traccia del foro interno creato a causa della frammentazione interna è sostanzialmente superiore al numero di fori interni. Il problema della frammentazione interna può essere risolto ripartendo la memoria nel blocco di dimensioni variabili e assegnando il blocco di dimensioni migliori a un processo che richiede la memoria. Tuttavia, non eliminerà del tutto il problema della frammentazione interna, ma lo ridurrà in una certa misura.

Definizione di frammentazione esterna

La frammentazione esterna si verifica quando c'è una quantità sufficiente di spazio nella memoria per soddisfare la richiesta di memoria di un processo. Ma la richiesta di memoria del processo non può essere soddisfatta in quanto la memoria disponibile è in un modo non contiguo. O si applica la strategia di allocazione della memoria di prima scelta o ottimale, causerà la frammentazione esterna.

Quando un processo viene caricato e rimosso dalla memoria, lo spazio libero crea il buco nello spazio di memoria, e ci sono molti buchi nello spazio di memoria, questo è chiamato frammentazione esterna. Sebbene il primo adattamento e il miglior adattamento possano influire sulla quantità di frammentazione esterna, non può essere completamente eliminato. La compattazione può essere la soluzione per la frammentazione esterna.

L'algoritmo di compattazione mischia tutto il contenuto della memoria su un lato e libera un grande blocco di memoria. Ma l'algoritmo di compattazione è costoso. Esiste una soluzione alternativa per risolvere il problema della frammentazione esterna che consentirà a un processo di acquisire memoria fisica in modo non contiguo. Le tecniche per ottenere questa soluzione sono il paging e la segmentazione.

Differenze chiave tra la frammentazione interna ed esterna

  1. La ragione alla base delle occorrenze di frammentazione interna ed esterna è che la frammentazione interna si verifica quando la memoria viene suddivisa in blocchi di dimensioni fisse mentre la frammentazione esterna si verifica quando la memoria viene suddivisa in blocchi di dimensioni variabili .
  2. Quando il blocco di memoria assegnato al processo risulta leggermente più grande della memoria richiesta, lo spazio libero lasciato nel blocco di memoria assegnato causa la frammentazione interna. D'altra parte, quando il processo viene rimosso dalla memoria, crea uno spazio libero causando un buco nella memoria che è chiamato frammentazione esterna.
  3. Il problema della frammentazione interna può essere risolto partizionando la memoria in blocchi di dimensioni variabili e assegnando il blocco più adatto al processo di richiesta. Tuttavia, la soluzione per la frammentazione esterna è la compattazione, ma è costosa da implementare, quindi i processi devono essere autorizzati ad acquisire memoria fisica in modo non contiguo, per ottenere ciò viene introdotta la tecnica del paging e della segmentazione.

Conclusione:

Il problema della frammentazione interna può essere ridotto, ma non può essere completamente eliminato. Il paging e la segmentazione aiutano a utilizzare lo spazio liberato a causa della frammentazione esterna consentendo a un processo di occupare la memoria in modo non contiguo.

Top