Raccomandato, 2024

Scelta Del Redattore

Differenza tra allocazione di memoria contigua e non contigua

La memoria è una vasta gamma di byte, in cui ogni byte ha il proprio indirizzo. L'allocazione della memoria può essere classificata in due metodi: allocazione di memoria contigua e allocazione di memoria non contigua. La differenza principale tra l'allocazione di memoria contigua e non contigua è che l' allocazione di memoria contigua assegna i blocchi consecutivi di memoria a un processo che richiede memoria mentre l' allocazione di memoria non contigua assegna i blocchi di memoria separati nella diversa posizione nello spazio di memoria in modo non consecutivo a un processo che richiede memoria. Discuteremo alcune più differenze tra allocazione di memoria contigua e non contigua con l'aiuto della tabella di confronto mostrata sotto.

Grafico comparativo

Base per il confrontoAllocazione di memoria contiguaAssegnazione della memoria non contigua
Di baseAssegna blocchi consecutivi di memoria a un processo.Assegna blocchi di memoria separati a un processo.
Spese generaliL'allocazione di memoria contigua non ha il sovraccarico della traduzione degli indirizzi durante l'esecuzione di un processo.L'allocazione di memoria non contigua ha un sovraccarico nella traduzione degli indirizzi durante l'esecuzione di un processo.
Tasso di esecuzioneUn processo esegue il fader in un'assegnazione di memoria contiguaUn processo si esegue in modo relativamente più lento in termini di allocazione di memoria non contigua.
SoluzioneLo spazio di memoria deve essere diviso in una partizione di dimensioni fisse e ogni partizione viene allocata a un solo processo.Dividere il processo in diversi blocchi e posizionarli in diverse parti della memoria in base alla disponibilità di spazio di memoria disponibile.
tavoloUna tabella viene gestita dal sistema operativo che mantiene l'elenco delle partizioni disponibili e occupate nello spazio di memoriaUna tabella deve essere mantenuta per ogni processo che porta gli indirizzi di base di ogni blocco che è stato acquisito da un processo in memoria.

Definizione di allocazione di memoria contigua

Il sistema operativo e i processi dell'utente devono essere entrambi contenuti nella memoria principale. Quindi la memoria principale è divisa in due partizioni: in una partizione risiede il sistema operativo e in altri i processi utente risiedono. In condizioni normali, i diversi processi utente devono risiedere nella memoria nello stesso momento e, pertanto, è importante considerare l'allocazione della memoria ai processi.

L'allocazione di memoria contigua è uno dei metodi di allocazione della memoria. Nell'allocazione di memoria contigua, quando un processo richiede la memoria, una singola sezione contigua di blocchi di memoria viene assegnata al processo in base alle sue esigenze.

L'allocazione di memoria contigua può essere ottenuta dividendo la memoria nella partizione di dimensioni fisse e allocare ciascuna partizione a un solo processo. Ma questo causerà il grado di multiprogrammazione, limitando il numero di partizioni fisse fatte in memoria. L'allocazione di memoria contigua porta anche alla frammentazione interna . Ad esempio, se un blocco di memoria di dimensioni fisse assegnato a un processo è leggermente più grande del suo requisito, lo spazio di memoria rimasto nel blocco è chiamato frammentazione interna. Quando il processo che risiede nella partizione termina, la partizione diventa disponibile per un altro processo.

Nello schema di partizionamento variabile, il sistema operativo mantiene una tabella che indica, quale partizione della memoria è libera e quale è occupata dai processi. L'allocazione di memoria contigua allaccia l'esecuzione di un processo riducendo i costi generali della traduzione degli indirizzi.

Definizione allocazione di memoria non contigua

L'allocazione di memoria non contigua consente a un processo di acquisire i vari blocchi di memoria nella diversa posizione nella memoria in base alle proprie esigenze. L'allocazione di memoria non contigua riduce anche lo spreco di memoria causato a causa della frammentazione interna ed esterna. Poiché utilizza i fori di memoria, creati durante la frammentazione interna ed esterna.

Il paging e la segmentazione sono i due modi in cui lo spazio di indirizzamento fisico di un processo non è contiguo. Nell'assegnazione di memoria non contigua, il processo è diviso in blocchi (pagine o segmenti) che sono collocati nella diversa area dello spazio di memoria in base alla disponibilità della memoria.

L'allocazione di memoria non contigua ha il vantaggio di ridurre lo spreco di memoria, ma aumenta i costi generali della traduzione degli indirizzi. Poiché le parti del processo sono collocate in una posizione diversa nella memoria, rallenta l'esecuzione della memoria perché il tempo viene consumato nella traduzione degli indirizzi.

Qui, il sistema operativo deve mantenere la tabella per ogni processo che contiene l'indirizzo di base di ogni blocco che viene acquisito dal processo nello spazio di memoria.

Differenze chiave tra allocazione di memoria contigua e non contigua

  1. La differenza fondamentale tra l'allocazione di memoria contigua e non contigua è che l'allocazione contigua alloca un singolo blocco contiguo di memoria al processo mentre l'allocazione non contigua divide il processo in diversi blocchi e li colloca nello spazio di indirizzamento differente della memoria, cioè in modo non contiguo .
  2. Nell'allocazione di memoria contigua, il processo è memorizzato in uno spazio di memoria contiguo; quindi non c'è overhead di traduzione degli indirizzi durante l'esecuzione. Ma nell'allocazione della memoria non contigua, vi è un sovraccarico di traduzione degli indirizzi durante l'esecuzione del processo, poiché i blocchi di processo sono distribuiti nello spazio di memoria.
  3. Il processo archiviato nella memoria contigua viene eseguito più velocemente rispetto al processo archiviato nello spazio di memoria non contiguo.
  4. La soluzione per l'allocazione di memoria contigua consiste nel dividere lo spazio di memoria nella partizione di dimensioni fisse e allocare una partizione a un solo processo. D'altra parte, in allocazione di memoria non contigua, un processo è diviso in più blocchi e ogni blocco è collocato in diversi punti della memoria in base alla disponibilità della memoria.
  5. Nell'allocazione di memoria contigua, il sistema operativo deve mantenere una tabella che indica quale partizione è disponibile per il processo e che è occupata dal processo. Nell'allocazione della memoria non contigua, viene mantenuta una tabella per ogni processo che indica l'indirizzo di base di ciascun blocco del processo posto nello spazio di memoria.

Conclusione:

L'allocazione di memoria contigua non crea alcun sovraccarico e allaccia la velocità di esecuzione del processo ma aumenta lo spreco di memoria . A sua volta, l'allocazione di memoria non contigua crea sovraccarichi di traduzione degli indirizzi, riduce la velocità di esecuzione di un processo ma aumenta l'utilizzo della memoria . Quindi ci sono pro e contro di entrambi i metodi di allocazione.

Top