logo

Gestione della memoria nel sistema operativo (SO)

In questo articolo, comprenderemo in dettaglio la gestione della memoria.

Cosa intendi per gestione della memoria?

La memoria è la parte importante del computer utilizzata per archiviare i dati. La sua gestione è fondamentale per il sistema informatico perché la quantità di memoria principale disponibile in un sistema informatico è molto limitata. In ogni momento, molti processi competono per questo. Inoltre, per aumentare le prestazioni, vengono eseguiti più processi contemporaneamente. Per questo dobbiamo mantenere diversi processi nella memoria principale, quindi è ancora più importante gestirli in modo efficace.

Gestione della memoria

Ruolo della gestione della memoria

Di seguito sono riportati i ruoli importanti della gestione della memoria in un sistema informatico:

  • Il gestore della memoria viene utilizzato per tenere traccia dello stato delle posizioni di memoria, sia che siano libere o allocate. Affronta la memoria primaria fornendo astrazioni in modo che il software percepisca che ad essa è allocata una grande memoria.
  • Il gestore della memoria consente ai computer con una piccola quantità di memoria principale di eseguire programmi più grandi della dimensione o della quantità di memoria disponibile. Lo fa spostando le informazioni avanti e indietro tra la memoria primaria e la memoria secondaria utilizzando il concetto di scambio.
  • Il gestore della memoria è responsabile della protezione della memoria allocata a ciascun processo dalla corruzione di un altro processo. Se ciò non è garantito, il sistema potrebbe mostrare un comportamento imprevedibile.
  • I gestori della memoria dovrebbero consentire la condivisione dello spazio di memoria tra i processi. Pertanto, due programmi possono risiedere nella stessa posizione di memoria anche se in momenti diversi.

Tecniche di gestione della memoria:

Le tecniche di gestione della memoria possono essere classificate nelle seguenti categorie principali:

  • Schemi di gestione della memoria contigua
  • Schemi di gestione della memoria non contigua
Gestione della memoria

Schemi di gestione della memoria contigua:

In uno schema di gestione della memoria contigua, ciascun programma occupa un singolo blocco contiguo di locazioni di memoria, ovvero un insieme di locazioni di memoria con indirizzi consecutivi.

convertire la data della stringa

Singoli schemi di gestione della memoria contigua:

Lo schema di gestione della memoria contigua singola è lo schema di gestione della memoria più semplice utilizzato nella prima generazione di sistemi informatici. In questo schema, la memoria principale è divisa in due aree o partizioni contigue. I sistemi operativi risiedono permanentemente in una partizione, generalmente nella memoria inferiore, e il processo utente viene caricato nell'altra partizione.

Vantaggi degli schemi di gestione della memoria contigua singola:

  • Semplice da implementare.
  • Facile da gestire e progettare.
  • In uno schema di gestione della memoria contigua singola, una volta caricato un processo, gli viene assegnato il tempo pieno del processore e nessun altro processore lo interromperà.

Svantaggi degli schemi di gestione della memoria contigua singola:

  • Spreco di spazio di memoria dovuto alla memoria inutilizzata poiché è improbabile che il processo utilizzi tutto lo spazio di memoria disponibile.
  • La CPU rimane inattiva, in attesa che il disco carichi l'immagine binaria nella memoria principale.
  • Non può essere eseguito se il programma è troppo grande per occupare l'intero spazio disponibile nella memoria principale.
  • Non supporta la multiprogrammazione, ovvero non può gestire più programmi contemporaneamente.

Partizionamento multiplo:

Il singolo schema di gestione della memoria contigua è inefficiente in quanto limita i computer a eseguire un solo programma alla volta con conseguente spreco di spazio di memoria e tempo della CPU. Il problema dell'uso inefficiente della CPU può essere superato utilizzando la multiprogrammazione che consente l'esecuzione simultanea di più programmi. Per passare da un processo all'altro, i sistemi operativi devono caricare entrambi i processi nella memoria principale. Il sistema operativo deve dividere la memoria principale disponibile in più parti per caricare più processi nella memoria principale. Pertanto più processi possono risiedere contemporaneamente nella memoria principale.

Gli schemi di partizionamento multiplo possono essere di due tipi:

verilog sempre
  • Partizionamento fisso
  • Partizionamento dinamico

Partizionamento fisso

La memoria principale è divisa in diverse partizioni di dimensione fissa in uno schema di gestione della memoria a partizioni fisse o partizionamento statico. Queste partizioni possono avere la stessa dimensione o dimensioni diverse. Ogni partizione può contenere un singolo processo. Il numero di partizioni determina il grado di multiprogrammazione, ovvero il numero massimo di processi in memoria. Queste partizioni vengono create al momento della generazione del sistema e successivamente rimangono fisse.

Vantaggi degli schemi di gestione della memoria a partizionamento fisso:

  • Semplice da implementare.
  • Facile da gestire e progettare.

Svantaggi degli schemi di gestione della memoria con partizionamento fisso:

  • Questo schema soffre di frammentazione interna.
  • Il numero di partizioni viene specificato al momento della generazione del sistema.

Partizionamento dinamico

Il partizionamento dinamico è stato progettato per superare i problemi di uno schema di partizionamento fisso. In uno schema di partizionamento dinamico, ogni processo occupa solo la quantità di memoria necessaria quando viene caricato per l'elaborazione. Ai processi richiesti viene allocata memoria finché l'intera memoria fisica non viene esaurita o lo spazio rimanente non è sufficiente per contenere il processo richiedente. In questo schema le partizioni utilizzate sono di dimensione variabile e il numero di partizioni non è definito al momento della generazione del sistema.

Vantaggi degli schemi di gestione della memoria con partizionamento dinamico:

  • Semplice da implementare.
  • Facile da gestire e progettare.

Svantaggi degli schemi di gestione della memoria con partizionamento dinamico:

  • Questo schema soffre anche di frammentazione interna.
  • Il numero di partizioni viene specificato al momento della segmentazione del sistema.

Schemi di gestione della memoria non contigua:

In uno schema di gestione della memoria non contigua, il programma viene diviso in diversi blocchi e caricato in diverse porzioni di memoria che non devono necessariamente essere adiacenti tra loro. Questo schema può essere classificato in base alla dimensione dei blocchi e al fatto che i blocchi risiedano o meno nella memoria principale.

Cos'è il cercapersone?

Il paging è una tecnica che elimina i requisiti di allocazione contigua della memoria principale. In questo, la memoria principale è divisa in blocchi di memoria fisica di dimensione fissa chiamati frame. La dimensione di un frame dovrebbe essere mantenuta uguale a quella di una pagina per massimizzare la memoria principale ed evitare la frammentazione esterna.

ymail

Vantaggi della paginazione:

  • Le pagine riducono la frammentazione esterna.
  • Semplice da implementare.
  • Memoria efficiente.
  • A causa delle dimensioni uguali dei frame, lo scambio diventa molto semplice.
  • Viene utilizzato per un accesso più rapido ai dati.

Cos'è la segmentazione?

La segmentazione è una tecnica che elimina i requisiti di allocazione contigua della memoria principale. In questo, la memoria principale è divisa in blocchi di memoria fisica di dimensione variabile chiamati segmenti. Si basa sul modo in cui il programmatore segue per strutturare i propri programmi. Con l'allocazione della memoria segmentata, ogni lavoro è diviso in diversi segmenti di dimensioni diverse, uno per ciascun modulo. Funzioni, subroutine, stack, array, ecc. sono esempi di tali moduli.