Compreendendo as operações do comando de sincronização no Linux

Compreendendo as operações do comando de sincronização no Linux

Estou tentando entender completamente as syncoperações de comando no sistema operacional Linux.

Depois de ler: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/

Eu entendi esse synccomando responsável por liberar dados desde os buffers do aplicativo até o armazenamento permanente.

  1. como o Linux rastreia seus dispositivos de armazenamento permanente e suas solicitações de gravação adequadas? (dentro de /dev temos muitos arquivos de dispositivos, nem todos representam dispositivos de armazenamento permanente) onde posso ver as solicitações de gravação aguardando de cada dispositivo?

  2. a sincronização (especificamente o comando de sincronização) verifica todos os dispositivos do sistema em busca de solicitações de gravação e executa todas elas? mantém alguma lista eficiente?

  3. como os sistemas de arquivos virtuais estão relacionados ao comando de sincronização? o comando de sincronização verifica cada sistema de arquivos? se sim, por que?

  4. existe alguma literatura sobre este comando e suas operações de "bastidores"?

Responder1

Esta página de manualpode esclarecer um pouco as coisas.

O que li nas entrelinhas é que toda implementação de sistema de arquivos deve fornecer um método de sincronização.

Então osincronizarcomando apenas chama o Kernel, que por sua vez chama todos os métodos de sincronização - provavelmente para todos os sistemas de arquivos montados.

Talvez você possa encontrar explicações melhores sobre o que está acontecendo lá ao examinar o código do kernel parasincronizar.

informação relacionada