Upload
elfi-strobl
View
117
Download
0
Embed Size (px)
Citation preview
Interprozess-kommunikation
(IPC)
Marcel Waldvogel
Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15.10.2001, 2
Ziele
Prozesse Enstehung
Lebensweg, -weise
Eigenschaften
Kommunikation Gründe
Dienste
Anwendungen
Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15.10.2001, 3
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, 4
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, 5
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, 6
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, 7
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, 8
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 Debugging (S; L)
Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15.10.2001, 9
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, 10
Remote Procedure Call
Dienst Entfernte Funktionsausführung
Semantik Lokalem Funktionsaufruf möglichst ähnlich
Implementation Nachrichtenpaar
Unterschiede? "Stubs" Marshalling Prozesskontext
Anwendungen X11, Mikrokernel, NFS, AFS, Datenbanken; SunRPC,
Java RMI, CORBA
Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15.10.2001, 11
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, 12
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, 13
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, 14
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, 15
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, 16
Bugs damals und heute
Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15.10.2001, 17
Debugger
Quellprogramm
Übersetzer
Maschinen-programm
Referenz-information
Quellzustand
Debugger
Maschinen-zustand
Programmebene
Maschinenebene
Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, 15.10.2001, 18
Persistenz der Information
Dilemma Kurzlebige Prozesse
Daten oft lange wertvoll
Abhilfe Datenbanken
Dateisysteme (File system)