Grafico comparativo
Base per il confronto | Allocazione di memoria contigua | Assegnazione della memoria non contigua |
---|---|---|
Di base | Assegna blocchi consecutivi di memoria a un processo. | Assegna blocchi di memoria separati a un processo. |
Spese generali | L'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 esecuzione | Un processo esegue il fader in un'assegnazione di memoria contigua | Un processo si esegue in modo relativamente più lento in termini di allocazione di memoria non contigua. |
Soluzione | Lo 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. |
tavolo | Una tabella viene gestita dal sistema operativo che mantiene l'elenco delle partizioni disponibili e occupate nello spazio di memoria | Una 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.
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
- 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 .
- 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.
- Il processo archiviato nella memoria contigua viene eseguito più velocemente rispetto al processo archiviato nello spazio di memoria non contiguo.
- 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.
- 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.