Memoria virtuale nel sistema operativo: cos'รจ, demand paging, vantaggi

โšก Riepilogo intelligente

La memoria virtuale รจ un meccanismo di archiviazione che offre all'utente l'illusione di una grande memoria principale, trattando parte della memoria secondaria come RAM. Consente l'esecuzione di processi di dimensioni superiori alla memoria fisica e viene implementata tramite paginazione a richiesta.

  • ๐Ÿง  Definizione: La memoria virtuale utilizza una parte della memoria di archiviazione secondaria come memoria principale per eseguire processi di grandi dimensioni.
  • ๐ŸŽฏ Perchรฉ necessario: Fornisce memoria aggiuntiva quando la RAM fisica รจ insufficiente, utilizzando un file di swap su disco.
  • ๐Ÿ“ฅ Servizio di cercapersone a richiesta: Le pagine vengono caricate dal disco nella RAM solo quando vengono effettivamente richiamate.
  • ๐Ÿ” Sostituzione della pagina: Gli algoritmi FIFO, Ottimale e LRU decidono quale pagina rimuovere in caso di errore di pagina.
  • โœ… Vantaggio: Supporta il multiprogrammazione e consente ai programmi di superare la dimensione della memoria fisica.
  • โš ๏ธ Inconveniente: รˆ piรน lento della RAM e puรฒ ridurre le prestazioni complessive del sistema.

Memoria virtuale nel sistema operativo

Cos'รจ la memoria virtuale?

Memoria virtuale La memoria virtuale รจ un meccanismo di archiviazione che offre all'utente l'illusione di disporre di una memoria principale molto ampia. Ciรฒ avviene trattando una parte della memoria secondaria come se fosse la memoria principale. Nella memoria virtuale, l'utente puรฒ memorizzare processi di dimensioni maggiori rispetto alla memoria principale disponibile.

Pertanto, invece di caricare un lungo processo nella memoria principale, il sistema operativo carica le varie parti di piรน di un processo nella memoria principale. La memoria virtuale รจ per lo piรน implementata con il paging e la segmentazione della domanda.

Perchรฉ รจ necessaria la memoria virtuale?

Ecco i motivi per cui si utilizza la memoria virtuale:

  • Quando il computer non ha spazio sufficiente nella memoria fisica, scrive le informazioni necessarie sul disco rigido in un file di swap, utilizzandolo come memoria virtuale.
  • Se un computer รจ in esecuzione Windows Se necessita di piรน memoria/RAM di quella installata nel sistema, utilizza una piccola porzione del disco rigido a questo scopo.

Come funziona la memoria virtuale?

Nel mondo moderno, la memoria virtuale รจ diventata piuttosto comune. Viene utilizzata quando alcune pagine devono essere caricate nella memoria principale per l'esecuzione, ma la memoria disponibile non รจ sufficiente per caricarle tutte.

In tal caso, invece di impedire alle pagine di entrare nella memoria principale, il sistema operativo cerca lo spazio RAM utilizzato minimamente di recente, o che non รจ referenziato, e lo sposta nella memoria secondaria per fare spazio alle nuove pagine nella memoria principale.

Cerchiamo di capire gestione della memoria virtuale con l'aiuto di un esempio.

Per esempio

Supponiamo che un sistema operativo richieda 300 MB di memoria per memorizzare tutti i programmi in esecuzione. Tuttavia, al momento sono disponibili solo 50 MB di memoria fisica nella RAM.

  • Il sistema operativo configurerร  quindi 250 MB di memoria virtuale e utilizzerร  un programma chiamato Virtual Memory Manager (VMM) per gestire tali 250 MB.
  • In questo caso, quindi, il VMM creerร  un file sul disco rigido di 250 MB per memorizzare la memoria aggiuntiva necessaria.
  • Il sistema operativo procederร  ora ad accedere alla memoria come se considerasse 300 MB di memoria reale memorizzati nella RAM, anche se sono disponibili solo 50 MB di spazio.
  • Il compito del VMM รจ quello di gestire 300 MB di memoria anche se sono disponibili solo 50 MB di spazio di memoria reale.

Che cos'รจ il paging della domanda?

Cercapersone su richiesta

Un meccanismo di paging su richiesta รจ molto simile a a sistema di cercapersone con scambioping, dove i processi sono memorizzati nella memoria secondaria e le pagine vengono caricate solo su richiesta, non in anticipo.

Pertanto, quando si verifica un cambio di contesto, il sistema operativo non copia mai le pagine del vecchio programma dal disco nรฉ le pagine del nuovo programma nella memoria principale. Invece, dopo aver caricato la prima pagina, inizia l'esecuzione del nuovo programma e recupera le pagine del programma a cui si fa riferimento.

Durante l'esecuzione del programma, se quest'ultimo fa riferimento a una pagina che potrebbe non essere disponibile nella memoria principale perchรฉ รจ stata spostata in memoria di swap, il processore lo considera un riferimento di memoria non valido. Questo accade perchรฉ l'errore di pagina trasferisce il controllo dal programma al sistema operativo, che richiede di memorizzare nuovamente la pagina in memoria.

Tipi di metodi di sostituzione della pagina

Ecco alcuni importanti metodi di sostituzione delle pagine:

  • FIFO
  • Algoritmo ottimale
  • Sostituzione della pagina LRU

Sostituzione della pagina FIFO

FIFO (First-in-first-out) รจ un metodo di implementazione semplice. In questo metodo, la memoria seleziona la pagina da sostituire che รจ rimasta nell'indirizzo virtuale della memoria per piรน tempo.

Caratteristiche

  • Ogni volta che viene caricata una nuova pagina, quella che รจ rimasta in memoria piรน a lungo viene rimossa. Pertanto, รจ facile decidere quale pagina rimuovere, poichรฉ il suo numero identificativo si trova sempre all'inizio dello stack FIFO.
  • La pagina piรน vecchia nella memoria principale รจ quella che deve essere selezionata per prima per la sostituzione.

Algoritmo ottimale

Il metodo di sostituzione della pagina ottimale seleziona quella pagina per una sostituzione per la quale il tempo fino al riferimento successivo รจ piรน lungo.

Caratteristiche

  • L'algoritmo ottimale produce il minor numero di errori di pagina. Questo algoritmo รจ difficile da implementare.
  • Un algoritmo di sostituzione delle pagine ottimale presenta il tasso di errori di pagina piรน basso di tutti gli algoritmi. Questo algoritmo esiste e dovrebbe essere chiamato MIN o OPT.
  • Sostituisci la pagina che difficilmente verrร  utilizzata per un periodo prolungato. In questo modo la pagina viene utilizzata solo quando รจ effettivamente necessaria.

Sostituzione della pagina LRU

L'acronimo LRU sta per Least Recently Used (pagina meno utilizzata di recente). Questo metodo aiuta il sistema operativo a individuare l'utilizzo delle pagine in un breve periodo di tempo. L'algoritmo viene implementato associando un contatore a ciascuna pagina.

Cosa puoi fare con noi?

  • La pagina che non รจ stata utilizzata per piรน tempo nella memoria principale รจ quella che verrร  selezionata per la sostituzione.
  • Facile da implementare, tieni un elenco, sostituisci le pagine guardando indietro nel tempo.

Caratteristiche

  • Il metodo di sostituzione LRU ha il conteggio piรน alto. Questo contatore รจ anche chiamato registro di invecchiamento e specifica l'etร  e la frequenza con cui le pagine associate devono essere referenziate.
  • La pagina che non รจ stata utilizzata per piรน tempo nella memoria principale รจ quella che dovrebbe essere selezionata per la sostituzione.
  • Mantiene anche un elenco e sostituisce le pagine guardando indietro nel tempo.

Tasso di guasto

Il tasso di guasto รจ la frequenza con cui un sistema o un componente progettato si guasta. Viene espresso in guasti per unitร  di tempo ed รจ indicato dalla lettera greca ฮป (lambda).

Vantaggi della memoria virtuale

Ecco i vantaggi/benefici dell'utilizzo della memoria virtuale:

  • La memoria virtuale aiuta ad aumentare la velocitร  quando รจ richiesto solo un particolare segmento del programma per l'esecuzione del programma.
  • รˆ molto utile nell'implementazione di un ambiente multiprogrammazione.
  • Ti consente di eseguire piรน applicazioni contemporaneamente.
  • Ti aiuta a adattare molti programmi di grandi dimensioni in programmi piรน piccoli.
  • Dati o codici comuni possono essere condivisi tra le memorie.
  • Un processo puรฒ diventare persino piรน grande di tutta la memoria fisica disponibile.
  • I dati/il codice devono essere letti dal disco ogni qualvolta sia necessario.
  • Il codice puรฒ essere posizionato ovunque nella memoria fisica senza richiedere lo spostamento.
  • Nella memoria principale dovrebbero essere mantenuti piรน processi, il che aumenta l'uso efficace della CPU.
  • Ogni pagina viene memorizzata su un disco finchรฉ non รจ necessaria, dopodichรฉ viene rimossa.
  • Permette di eseguire piรน applicazioni contemporaneamente.
  • Non esiste un limite specifico al grado di multiprogrammazione.
  • รˆ consigliabile scrivere programmi di grandi dimensioni, poichรฉ lo spazio di indirizzamento virtuale disponibile รจ maggiore rispetto alla memoria fisica.

Svantaggi della memoria virtuale

Ecco gli svantaggi dell'utilizzo della memoria virtuale:

  • Le applicazioni possono essere eseguite piรน lentamente se il sistema utilizza la memoria virtuale.
  • Probabilmente ci vuole piรน tempo per passare da un'applicazione all'altra.
  • Offre meno spazio su disco rigido a tua disposizione.
  • Riduce la stabilitร  del sistema.
  • Consente l'esecuzione di applicazioni di grandi dimensioni in sistemi che non dispongono di sufficiente RAM fisica per eseguirle.
  • Non offre le stesse prestazioni della RAM.
  • Influisce negativamente sulle prestazioni generali di un sistema.
  • Occupa spazio di archiviazione che potrebbe essere utilizzato per la memorizzazione di dati a lungo termine.

DOMANDE FREQUENTI

Un errore di pagina si verifica quando un programma fa riferimento a una pagina che non รจ attualmente presente nella memoria principale. Il sistema operativo mette in pausa il programma, carica la pagina richiesta dal disco nella RAM, aggiorna la tabella delle pagine e quindi riprende l'esecuzione.

Il thrashing si verifica quando il sistema impiega piรน tempo a scambiareping Il numero di pagine tra RAM e disco รจ superiore al numero di processi in esecuzione. รˆ causato da un grado eccessivo di multiprogrammazione e degrada gravemente le prestazioni. Ridurre i processi attivi o aumentare la RAM puรฒ essere d'aiuto.

La RAM รจ un hardware fisico veloce in cui vengono memorizzati i dati attivi. La memoria virtuale รจ una tecnica che estende la RAM utilizzando lo spazio su disco come se fosse memoria. La memoria virtuale รจ molto piรน capiente, ma anche molto piรน lenta della RAM reale.

L'intelligenza artificiale puรฒ apprendere i modelli di accesso alla memoria di un programma e prevedere quali pagine saranno necessarie a breve. Ciรฒ consente al sistema operativo di mantenere nella RAM le pagine utili e di eliminare quelle necessarie, avvicinandosi all'algoritmo ottimale ideale e riducendo i page fault.

Sรฌ. Analizzando le sequenze di accesso precedenti, i modelli di intelligenza artificiale possono precaricare le pagine prima che vengano richieste e regolare la frequenza con cui vengono scambiate. Ciรฒ riduce i page fault e il thrashing, sebbene sia necessario mantenere bassi gli errori di predizione e l'overhead.

Riassumi questo post con: