Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Interprozess- kommunikation (IPC)

Ähnliche Präsentationen


Präsentation zum Thema: "Interprozess- kommunikation (IPC)"—  Präsentation transkript:

1 Interprozess- kommunikation (IPC)
Marcel Waldvogel

2 Ziele Prozesse Kommunikation Enstehung Lebensweg, -weise Eigenschaften
Gründe Dienste Anwendungen

3 Was ist IPC? Inter Prozess Kommunikation Was ist ein Prozess?
Eigenschaften Kommunikation Kommunikationsarten Kommunikationswege Kommunikationsdienste

4 Prozesse Prozess = Programm + Zustand, Ablauf
Zeitliche Komponente Objekte mit Ressourcen (OS) Verarbeitung Parallel Sequentiell Überlappend (Zeitscheiben, kooperativ) Entstehung Biologie! Programmausführung im Prozess

5 Weight Watchers Zustände Zustandsübergänge teuer
Running, runnable, sleeping Übergänge? Zustandsübergänge teuer Schwer- vs. leichtgewichtige Prozesse (LWP, Thread) mit viel, wenig Zustandsinfo

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

7 Kommunikation Arten Wege Dienste Gegenseitiges Einverständnis!
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

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)

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

10 Remote Procedure Call Dienst Semantik Implementation Unterschiede?
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

11 Gemeinsame Datenstrukturen
Derselbe Speicherbereich sichtbar von mehreren Prozessen Shared Memory Implementation Lokal Entfernt: Nachrichtendienst und viele Tricks Probleme Basisadresse, Pointer Synchronisation

12 Synchronisation Interrupts sperren
Verdrängungssperre (Context Switch Block) Sperrvariablen Atomare Operationen Algorithmische Lösung Semaphore Deadlock (Verklemmung)

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

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

15 Direkte Manipulation Fehlersuche, Debugging Fehlerumgehung Emulation
Inspektion und Modifikation von Variablen Steuerung der Programmausführung Passive Beobachtung ("execution trace") Fehlerumgehung Zugriffsumgehung Lehre: Keine künstlichen, nicht erzwingbaren Rechte! Emulation

16 Bugs damals und heute

17 Debugger Quellprogramm Quellzustand Programmebene Übersetzer Debugger
Maschinenebene Maschinen- programm Referenz- information Maschinen- zustand

18 Persistenz der Information
Dilemma Kurzlebige Prozesse Daten oft lange wertvoll Abhilfe Datenbanken Dateisysteme (File system)


Herunterladen ppt "Interprozess- kommunikation (IPC)"

Ähnliche Präsentationen


Google-Anzeigen