Vuoi migliorare questa domanda? Aggiorna la domanda in modo che si concentri su un solo problema modificando questo post.
Chiuso 1 anno fa.
Migliora questa domanda
Sto cercando di comprendere appieno la sync
operazioni di comando nel sistema operativo Linux.
Dopo aver letto:
https://en.wikipedia.org/wiki/Sync_(Unix)
https://lwn.net/Articles/457667/
Ho capito che sync
comando responsabile dello svuotamento dei dati dai buffer dell'applicazione alla memoria permanente.
-
come Linux tiene traccia dei suoi dispositivi di archiviazione permanenti e delle loro richieste di scrittura adeguate?
(all'interno di /dev abbiamo molti file di dispositivo non tutti rappresentano dispositivi di archiviazione permanenti)
dove posso vedere le richieste di scrittura in attesa di ciascun dispositivo? -
sync (in particolare il comando di sincronizzazione) esegue la scansione di tutti i dispositivi del sistema per la scrittura delle richieste e le esegue tutte? mantiene un elenco efficiente?
-
in che modo i file system virtuali sono correlati al comando di sincronizzazione?
il comando di sincronizzazione esegue la scansione di ogni file system? se si perché? -
c'è della letteratura in merito a questo comando e alle sue operazioni "dietro le quinte"?
Risposta accettata:
Questa manpage potrebbe chiarire un po' le cose.
Quello che ho letto tra le righe è che ogni implementazione del filesystem deve fornire un metodo di sincronizzazione.
Quindi la sincronizzazione comando chiama semplicemente il kernel, che a sua volta chiama tutti i metodi di sincronizzazione, probabilmente per tutti i filesystem montati.
Forse puoi trovare spiegazioni migliori di ciò che sta accadendo lì quando esamini il codice del kernel per sync .