Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was ist eine Pipeline unter Linux?

Was ist eine Pipeline unter Linux?

青灯夜游
青灯夜游Original
2019-12-25 18:27:578458Durchsuche

Was ist eine Pipeline unter Linux?

Pipeline ist ein prozessübergreifender Kommunikationsmechanismus, den Linux von Unix geerbt hat. Es handelt sich um einen wichtigen Kommunikationsmechanismus in den frühen Tagen von Unix. Die Idee besteht darin, eine gemeinsame Datei im Speicher zu erstellen, sodass beide Kommunikationsparteien diese gemeinsame Datei zum Übertragen von Informationen verwenden können. Da diese Methode die Eigenschaften einer unidirektionalen Datenübertragung aufweist, wird diese gemeinsam genutzte Datei zur Übertragung von Nachrichten als „Pipeline“ bezeichnet.

Bei der spezifischen Implementierung von Pipes gibt es „anonyme Pipes“ und „benannte Pipes“, je nachdem, ob die zur Kommunikation verwendeten Dateien Namen haben.

Der Unterschied zwischen Pipes und Shared Memory

Auf den ersten Blick scheint es keinen großen Unterschied zwischen Pipes und Shared Memory zu geben. Hier finden Sie eine Einführung in den Unterschied zwischen den beiden:

● Die Pipeline erfordert vier Datenkopien zwischen dem Kernel und dem Benutzerbereich: Kopieren Sie die Daten aus dem Buff im Benutzerbereich in den Kernel-> Der Kernel kopiert die Daten in den Speicher-> ; Speicher zum Kernel-> ; Der gemeinsam genutzte Speicher kopiert Daten nur zweimal: Benutzerbereich in den Speicher -> Speicher in den Benutzerbereich.

● Die Pipeline wird mithilfe einer kreisförmigen Warteschlange implementiert und Daten können kontinuierlich ohne Größenbeschränkung übertragen werden. Die Größe der im Shared Memory übertragenen Daten ist jedes Mal festgelegt.

● Der Shared Memory kann zufällig auf jeden Speicherort der zugeordneten Datei zugreifen, während Pipes nur nacheinander lesen und schreiben können Vollständige Datenverarbeitung unabhängig von Übermittlungs- und Benachrichtigungsmechanismen, gemeinsam genutzter Speicher erfordert die Verwendung anderer Kommunikationsmethoden für die Nachrichtenübermittlung.

Mit anderen Worten, der größte Unterschied zwischen den beiden ist: Der gemeinsam genutzte Speicherbereich ist die schnellste verfügbare Form von IPC. Sobald ein solcher Speicherbereich dem Adressraum des Prozesses zugeordnet ist, der ihn teilt, erfolgt die Übertragung Daten zwischen diesen Prozessen übergeben, müssen Sie keine Systemaufrufe mehr in den Kernel ausführen, um die Daten des jeweils anderen weiterzugeben, was Zeit spart.

Empfohlene verwandte Artikel und Tutorials:

Linux-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist eine Pipeline unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn