Interprozesskommunikation IPC Marcel Waldvogel Ziele Prozesse Enstehung Lebensweg
Interprozesskommunikation (IPC) Marcel Waldvogel
Ziele $Prozesse � Enstehung � Lebensweg, -weise � Eigenschaften $Kommunikation � Gründe � Dienste � Anwendungen Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 2
Was ist IPC? $Inter $Prozess � Was ist ein Prozess? � Eigenschaften $Kommunikation � Kommunikationsarten � Kommunikationswege � Kommunikationsdienste Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 3
Prozesse $Prozess = Programm + Zustand, Ablauf � Zeitliche Komponente $Objekte mit Ressourcen (OS) $Verarbeitung � Parallel � Sequentiell � Überlappend (Zeitscheiben, kooperativ) $Entstehung � Biologie! � Programmausführung im Prozess Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 4
Weight Watchers $Zustände � Running, runnable, sleeping � Übergänge? $Zustandsübergänge teuer � Schwer- vs. leichtgewichtige Prozesse (LWP, Thread) mit viel, wenig Zustandsinfo Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 5
Prozesskoordination $EVA: Daten und Berechnung � Datenerhalt über Prozesslaufzeit hinaus $OS: Hauptsächlich Synchronisation $Abhängigkeiten zwischen nebenläufigen, kooperierenden Prozessen � Ressourcen teilen (I/O, Datenstrukturen, Speicher, . . . ) $Koordination bedingt Kommunikation Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 6
Kommunikation $Arten � Synchron, asynchron (S, A) � Lokal, entfernt/remote (L, R) $Wege � Nachrichten versenden � Entfernter Funktionsaufruf � Gemeinsame Datenstrukturen � Abgelegte Informationen � Direkter Einfluss $Dienste $Gegenseitiges Einverständnis! � Zugangskontrolle Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 7
Kommunikationsdienste $Nachrichten, Datenströme � Message Queues (A; L, R) � Sockets (A; R) und Pipes (A; L) $Entfernter Funktionsaufruf � Remote Procedure Call (S; R) $Gemeinsame Datenstrukturen � Shared Memory (S; L, R) $Informationen � Dateisysteme, Datenbanken (A; L, R) $Direkte Manipulationen Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 8
Nachrichten in Warteschlangen $Beliebteste Kommunikation � Internet � Basisdienst für viele Mehrwertdienste $Beispiele � Lokal? � Entfernt? $Abarbeitung in Folge � evt. priorisiert � mit/ohne Erhalt von Meldungsgrenzen � Warteschlange pro Kanal oder global Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 9
Remote Procedure Call $Dienst � Entfernte Funktionsausführung $Semantik � Lokalem Funktionsaufruf möglichst ähnlich $Implementation � Nachrichtenpaar $Unterschiede? � "Stubs" � Marshalling � Prozesskontext $Anwendungen � X 11, Mikrokernel, NFS, AFS, Datenbanken; Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 10
Gemeinsame Datenstrukturen $Derselbe Speicherbereich sichtbar von mehreren Prozessen $Shared Memory $Implementation � Lokal � Entfernt: Nachrichtendienst und viele Tricks $Probleme � Basisadresse, Pointer � Synchronisation Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 11
Synchronisation $Interrupts sperren $Verdrängungssperre (Context Switch Block) $Sperrvariablen $Atomare Operationen $Algorithmische Lösung $Semaphore $Deadlock (Verklemmung) Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 12
Filosofen beim Abendessen $"Dining Philosophers" � Einige Filosofen am runden Tisch � Zwischen jedem eine Gabel � Jeder braucht zwei Gabeln zum Essen $Grundproblem für Deadlocks (Verklemmungen) $Zirkuläre Abhängigkeiten vermeiden oder aufbrechen Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 13
Beispiel: Datenmanipulation $Klassische Serialisierung � Nachrichten an einzelnen "verantwortlichen" Prozess � Sperrvariablen $Einfügen in verkettete Liste � Z. B. Nachrichtenwarteschlange � Sperrvariable � Atomarer Zugriff $Probleme � Löschen � Granularität der Sperrvariable � Cache beim Mehrprozessorsystemen Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 14
Direkte Manipulation $Fehlersuche, Debugging � Inspektion und Modifikation von Variablen � Steuerung der Programmausführung � Passive Beobachtung ("execution trace") $Fehlerumgehung � Zugriffsumgehung � Lehre: Keine künstlichen, nicht erzwingbaren Rechte! $Emulation Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 15
Bugs damals und heute Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 16
Debugger Quellprogramm Übersetzer Maschinenprogramm Quellzustand Programmebene Maschinenebene Referenzinformation Debugger Maschinenzustand Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 17
Persistenz der Information $Dilemma � Kurzlebige Prozesse � Daten oft lange wertvoll $Abhilfe � Datenbanken � Dateisysteme (File system) Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15. 10. 2001, 18
- Slides: 18