Synchronisierungsbefehlsvorgänge in Linux verstehen

Synchronisierungsbefehlsvorgänge in Linux verstehen

Ich versuche, die syncBefehlsvorgänge im Linux-Betriebssystem vollständig zu verstehen.

Nach dem Lesen: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/

Ich habe verstanden, dass der syncBefehl dafür verantwortlich ist, Daten aus den gesamten Puffern der Anwendung in den permanenten Speicher zu übertragen.

  1. Wie verfolgt Linux seine permanenten Speichergeräte und die entsprechenden Schreibanforderungen? (In /dev haben wir viele Gerätedateien, von denen nicht alle permanente Speichergeräte darstellen.) Wo kann ich die auf Schreibanforderungen der einzelnen Geräte wartenden Geräte sehen?

  2. durchsucht sync (insbesondere der Befehl sync) alle Geräte des Systems nach Schreibanforderungen und führt sie alle aus? Führt es eine effiziente Liste?

  3. In welcher Beziehung stehen virtuelle Dateisysteme zum Synchronisierungsbefehl? Durchsucht der Synchronisierungsbefehl jedes Dateisystem? Wenn ja, warum?

  4. gibt es Literatur zu diesem Befehl und seinen „Backstage“-Operationen?

Antwort1

Diese Manpagekönnte die Dinge ein wenig klären.

Was ich zwischen den Zeilen lese, ist, dass jede Dateisystemimplementierung eine Synchronisierungsmethode bereitstellen muss.

Also dassynchronisierenDer Befehl ruft einfach den Kernel auf, der wiederum alle Synchronisierungsmethoden aufruft – wahrscheinlich für alle gemounteten Dateisysteme.

Vielleicht finden Sie bessere Erklärungen dafür, was dort passiert, wenn Sie sich den Kernel-Code ansehen fürsynchronisieren.

verwandte Informationen