Funzioni di memoria virtuale

Le funzioni di memoria virtuale consentono a un processo di modificare o determinare lo stato delle pagine nello spazio indirizzi virtuale. Possono eseguire le operazioni seguenti:

  • Riservare un intervallo di spazio indirizzi virtuale di un processo. La prenotazione dello spazio degli indirizzi non alloca alcuna risorsa di archiviazione fisica, ma impedisce ad altre operazioni di allocazione di usare l'intervallo specificato. Non influisce sugli spazi indirizzi virtuali di altri processi. La prenotazione delle pagine impedisce l'utilizzo inutile dell'archiviazione fisica, consentendo al contempo a un processo di riservare un intervallo di spazio indirizzi in cui può crescere una struttura di dati dinamica. Il processo può allocare spazio di archiviazione fisico per questo spazio, in base alle esigenze.
  • Eseguire il commit di un intervallo di pagine riservate nello spazio indirizzi virtuale di un processo in modo che l'archiviazione fisica (in RAM o su disco) sia accessibile solo al processo di allocazione.
  • Specificare lettura/scrittura, sola lettura o nessun accesso per un intervallo di pagine di cui è stato eseguito il commit. Ciò è diverso dalle funzioni di allocazione standard che allocano sempre le pagine con accesso in lettura/scrittura.
  • Liberare una gamma di pagine riservate, rendendo disponibile l'intervallo di indirizzi virtuali per le successive operazioni di allocazione tramite il processo chiamante.
  • Annullare il commit di una serie di pagine di cui è stato eseguito il commit, rilasciare la risorsa di archiviazione fisica e renderla disponibile per l'allocazione successiva da qualsiasi processo.
  • Bloccare una o più pagine di memoria di cui è stato eseguito il commit in memoria fisica (RAM) in modo che il sistema non possa scambiare le pagine nel file di paging.
  • Ottenere informazioni su un intervallo di pagine nello spazio degli indirizzi virtuali del processo chiamante o su un processo specificato.
  • Modificare la protezione di accesso per un intervallo specificato di pagine di cui è stato eseguito il commit nello spazio degli indirizzi virtuali del processo chiamante o di un processo specificato.

Per ulteriori informazioni, vedere gli argomenti seguenti.