Estoy intentando comprender completamente las sync
operaciones de comando en el sistema operativo Linux.
Despues de leer: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/
Entendí que sync
el comando es responsable de vaciar los datos desde los buffers de la aplicación hasta el almacenamiento permanente.
¿Cómo rastrea Linux sus dispositivos de almacenamiento permanente y sus solicitudes de escritura adecuadas? (Dentro de /dev tenemos muchos archivos de dispositivos, no todos representan dispositivos de almacenamiento permanentes) ¿Dónde puedo ver las solicitudes de escritura en espera de cada dispositivo?
¿La sincronización (específicamente el comando de sincronización) escanea todos los dispositivos del sistema en busca de solicitudes de escritura y las realiza todas? ¿Mantiene alguna lista eficiente?
¿Cómo se relacionan los sistemas de archivos virtuales con el comando de sincronización? ¿El comando de sincronización escanea cada sistema de archivos? si es así ¿por qué?
¿Existe alguna literatura sobre este comando y sus operaciones "entre bastidores"?
Respuesta1
Esta página de manualPodría aclarar un poco las cosas.
Lo que leo entre líneas es que cada implementación de sistema de archivos debe proporcionar un método de sincronización.
Entonces elsincronizarEl comando simplemente llama al Kernel, que a su vez llama a todos los métodos de sincronización, probablemente para todos los sistemas de archivos montados.
Quizás pueda encontrar mejores explicaciones de lo que sucede allí cuando busque en el código del kernelsincronizar.