Differenza tra frammentazione interna ed esterna

Autore: Laura McKinney
Data Della Creazione: 1 Aprile 2021
Data Di Aggiornamento: 15 Maggio 2024
Anonim
Partizioni variabili
Video: Partizioni variabili

Contenuto



Ogni volta che un processo viene caricato o rimosso dal blocco di memoria fisica, crea un piccolo foro nello spazio di memoria che si chiama 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 influiscono sulla velocità di accesso ai dati del sistema. Hanno una differenza fondamentale tra loro, ad es. Frammentazione interna si verifica quando i blocchi di memoria di dimensioni fisse vengono allocati al processo senza preoccuparsi della dimensione del processo e Frammentazione esterna si verifica quando i processi vengono allocati dinamicamente nella memoria. Andiamo oltre e discutiamo le differenze, le ragioni, le soluzioni alla base della frammentazione interna ed esterna con l'aiuto della tabella di confronto mostrata di seguito.


  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confronto Frammentazione internaFrammentazione esterna
Di baseSi verifica quando vengono allocati blocchi di memoria di dimensioni fisse ai processi.Si verifica quando lo spazio di memoria di dimensioni variabili viene allocato dinamicamente ai processi.
avvenimentoQuando la memoria assegnata al processo è leggermente più grande della memoria richiesta dal processo, questo crea spazio libero nel blocco allocato causando la frammentazione interna.Quando il processo viene rimosso dalla memoria, crea lo spazio libero nella memoria causando la frammentazione esterna.
SoluzioneLa memoria deve essere suddivisa in blocchi di dimensioni variabili e assegnare il blocco più adatto al processo.Compattazione, paginazione e segmentazione.


Definizione di frammentazione interna

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

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

Il sovraccarico di tenere traccia del foro interno creato a causa della frammentazione interna è sostanzialmente maggiore del numero di fori interni. Il problema della frammentazione interna può essere risolto da partizionare la memoria nel blocco di dimensioni variabili e assegnare il blocco della dimensione migliore a un processo che richiede la memoria. Tuttavia, non eliminerà totalmente il problema della frammentazione interna, ma lo ridurrà in una certa misura.

Definizione di frammentazione esterna

La frammentazione esterna si verifica quando vi è 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 poiché la memoria disponibile è in modo non contiguo. O si applica la strategia di allocazione della memoria di primo o migliore adattamento 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 di questi buchi nello spazio di memoria, questo si chiama frammentazione esterna. Sebbene il primo adattamento e il miglior adattamento possano influire sulla quantità di frammentazione esterna, non possono essere completamente eliminati. compattazione può essere la soluzione per la frammentazione esterna.

L'algoritmo di compattazione mescola 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 frammentazione interna ed esterna

  1. Il motivo di base dietro le occorrenze della 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 è partizionata in blocchi di dimensioni variabili.
  2. Quando il blocco di memoria assegnato al processo risulta leggermente più grande della memoria richiesta, lo spazio libero rimasto nel blocco di memoria assegnato provoca la frammentazione interna. D'altra parte, quando il processo viene rimosso dalla memoria crea spazio libero causando un buco nella memoria che si chiama 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 è necessario consentire ai processi di acquisire memoria fisica in modo non contiguo, per raggiungere questo obiettivo viene introdotta la tecnica di paginazione e 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.