Gentile promemoria: per fornire una risposta migliore per il resto della comunità, non dire qualcosa del tipo "Non parlare dei quattro tipi di memoria". Anche se lo conosci bene, potrebbero esserci mille cittadini di Internet che arrivano qui sperando in una risposta collaterale. :)
"Paging" è il termine esatto per la seguente azione. Lo “scambio” viene utilizzato colloquialmente per il “paging”, tuttavia al giorno d'oggi in modo abbastanza intercambiabile. "Scambio" originariamente si riferiva allo spostamento dello spazio di memoria di un programma completamente su "memoria secondaria" (al contrario di "memoria principale", che è un termine arcaico per ... RAM, in un certo senso). Il confine tra paginazione e scambio è considerevolmente offuscato dai sistemi Windows e Unix che chiamano gli swap dello spazio di paginazione.
Quindi, è necessario conoscere il paging per comprendere il concetto di memoria attiva, cablata e inattiva. Il paging significa che la pagina di memoria viene spostata dalla memoria ad accesso casuale (ad esempio, la RAM) e sul disco rigido o altro dispositivo di archiviazione secondario. Ciò consente all'applicazione in esecuzione di richiedere più memoria della quantità totale di RAM di sistema disponibile.
Si noti che sebbene il paging fuori significhi un'enorme penalità prestazionale per accedere nuovamente a quel particolare bit di informazioni, il paging può avvenire in due casi diversi: (Citando me stesso: svantaggi di non avere una partizione di swap )
- Quando non c'è abbastanza memoria per tutte le applicazioni - nel caso in cui ciò accada a un sistema senza spazio di scambio, si verificherà un errore nell'allocazione della memoria per le nuove applicazioni che richiedono nuove pagine di memoria - e questo di solito porta alla chiusura del programma.
- Quando alcune pagine di memoria (la memoria è divisa in "pagine") viene utilizzata qualche tempo fa, ma non è più utilizzata ora, verrebbe trasferita al file di scambio e la memoria rimanente può essere utilizzata per fare qualcos'altro che potrebbe essere più utile (ad esempio, anche la memorizzazione nella cache!) - quando ciò accade in un sistema senza spazio di scambio, ciò comporterà la memorizzazione di pagine inattive. Questo non è nulla di troppo serio, dato che al giorno d'oggi abbiamo una grande quantità di memoria.
I quattro tipi di memoria sono classificati come segue:
Cablato: utilizzato da un'applicazione che afferma che il blocco di memoria allocata deve rimanere fisicamente nella RAM e non essere scambiato su disco, indipendentemente dal fatto che sia stato utilizzato di recente o meno, ad esempio un'altra applicazione NON può richiedere quel particolare blocco di memoria. Gli esempi fanno parte della memoria utilizzata dal sistema e quella utilizzata dalle macchine virtuali.
Attivo e inattivo: si tratta della memoria utilizzata di solito dalle applicazioni in modalità utente, in cui sono scambiabili su dischi. "Attivo" significa che è stato utilizzato di recente e "Inattivo" significa che non è stato utilizzato di recente. Il sistema operativo quindi sostituisce prima le pagine inattive, quindi le pagine attive in seguito, se necessario.
Memoria libera: memoria non utilizzata. Questo viene utilizzato per altri scopi come la memorizzazione nella cache del disco rigido.
Se la tua domanda è: "In una situazione terribile in cui la memoria è inadeguata, in quale ordine il sistema tenterebbe di allocare memoria a una nuova applicazione?", La sequenza sarebbe quella di allocare
memoria libera → memoria inattiva → memoria attiva
In un certo senso, anche la memoria utilizzata di recente potrebbe essere paginata. La parte "cablata" è ciò che non verrebbe eseguito il paging a tutti i costi.
Nei sistemi moderni, tuttavia, è piuttosto improbabile che la memoria attiva venga paginata poiché abbiamo molta RAM disponibile.