GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:la differenza tra "paginazione in caso di errore di pagina principale" e "scambio abilitato manualmente"

C'è ancora majflt che attiverà il paging dei dati sul disco.

È il contrario:i difetti principali sono errori di pagina che possono essere risolti solo effettuando il paging in dati da un disco.

Possiamo dire che ci sono due tipi di scambio sul sistema operativo?

Non proprio; la differenza qui è che il paging out (copiando il contenuto della memoria "da qualche altra parte" in modo che le pagine possano essere scartate) può utilizzare diversi archivi di supporto. Le pagine in memoria hanno obiettivi diversi per il paging out:i file mappati sono in genere il proprio archivio di supporto, la maggior parte delle altre pagine necessita di un file di scambio o di una partizione come archivio di supporto. Lo scambio si riferisce a quest'ultimo. Quando il kernel ha bisogno di liberare una pagina di memoria, se vuole liberare una pagina non modificata da un file può semplicemente scartarla, sapendo che la pagina può essere ripristinata dal file ogni volta che è necessario. Quando è necessario scartare una pagina modificata da un file, se quel file è mappato in lettura/scrittura senza condivisione, la pagina verrà scritta nel file prima di essere scartata; ancora una volta, il kernel sa che può ripristinare la pagina dal file. Qualsiasi altra cosa necessita di qualche altra forma di archiviazione, altrimenti non può essere eliminata.

In che modo i due meccanismi funzionano in modo diverso?

Vedi sopra.

Se c'è sempre un meccanismo di paging funzionante, perché è ancora necessario abilitare lo scambio manualmente?

Vedi sopra, principalmente. Il punto di scambio è fornire un archivio di supporto per le pagine che non dispongono già di un proprio archivio di supporto.

Vedi anche Perché Linux ha bisogno di spazio di swap in una VM?


Linux
  1. La differenza tra collegamenti simbolici e hard?

  2. Linux:qual è la differenza tra `su -` e `su –login`?

  3. Qual è la differenza tra env e set (su Mac OS X o Linux)?

  4. Qual è la differenza tra memoria buffer e cache in Linux?

  5. Qual è la differenza tra "trova" e "trova" in Linux?

Comprendere la differenza tra il comando sudo e su su Linux

Qual ​​è la differenza tra i kernel macOS e Linux

Qual è la differenza tra Linux e Unix?

La differenza tra più, meno e la maggior parte dei comandi

Differenza tra soft link e hard link in Linux

Qual è la differenza tra fsync e syncfs?