Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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)
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.