2.2 KiB
2.2 KiB
Interprozesskommunikation (IPC)
- Mechanismen und Techniken, die es Prozessen ermöglichen miteinander zu kommunizieren
- auf demselben Computer / über ein Netzwerk hinweg
- Ist grundsätzlich wichtig, wenn Prozesse
- zusammenarbeiten
- Daten austauschen
- miteinander interagieren
- Wahl der Methodik hängt von Anforderung der Anwendung ab
- Effizienz
- Datenvolumen
- Sicherheit
- Komplexität
Synchrone IPC
- Prozess, bei dem der Absender eines Signals/Nachricht auf eine Bestätigung oder eine Antwort vom Empfänger wartet
- stellt sicher, dass
- Absender und Empfänger synchronisiert sind
- Ereignisse/Aufgaben sind abgeschlossen bevor andere anfangen
- stellt sicher, dass
Asynchrone IPC
- Prozesse, bei dem der Absender nicht auf sofortige Antwort wartet
- Absender setzt Ausführung fort, während Empfänger verarbeitet und ggf. später antwortet
Mechanismen
- Shared Memory
- Dateien
- Message Queues
- Pipes
- Promises (Futures)
- Sockets
- Semaphoren
- Mutexe
- Condition Variables
- Remote Procedure Call (RPC)
Shared Memory
- ermöglicht mehreren Prozessen auf denselben physischen Speicherbereich zuzugreifen
- Austausch von Daten effizient ohne explizite Kommunikation
- Speicherbereich wird im RAM erstellt
- Kann von beteiligten Systemen gelesen und beschrieben werden
- müssen sich selbst koordinieren
- Kann von beteiligten Systemen gelesen und beschrieben werden
Linux-Systemaufrufe Shared Memory
- shmget - Segment erzeugen oder auf bestehendes Zugreifen
- shmat - Segment an anderen Prozess anhängen
- shmdt - Segment von Prozess lösen/freigeben
- shmctl - Status eines Segments abfragen/ändern/löschen
Dateien
- Prozesse können auf gemeinsame Dateien zugreifen
- Zugriff kann langsamer als andere IPC-Mechanismen sein
- Darauf muss man achten:
- Zugriffsrechte korrekt setzen um Sicherheit zu gewährleisten
- geeignete Synchronisationsmechanismen nutzen