Interprozess- kommunikation (IPC)

Slides:



Advertisements
Ähnliche Präsentationen
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Advertisements

DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
10.2 Wechselseitiger Ausschluss in Hardware
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
C Tutorium – Semaphoren –
Synonyme: Stapel, Keller, LIFO-Liste usw.
3 Prozessverwaltung  sieht einen Prozess als Objekt der Verwaltung,
der Universität Oldenburg
der Universität Oldenburg
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Sichere Softwarekomponenten AG Heiß Universität Paderborn.
Gliederung Motivation / Grundlagen Sortierverfahren
On a Buzzword: Hierachical Structure David Parnas.
Kapitel 6.1 Nebenläufigkeit und wechselseitiger Ausschluss
Kapitel 7.2 Dining philosophers problem
Nebenläufige Programmierung
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Das JavaCard-Betriebssystem
Kommunikation in verteilten Systemen (Middleware)
Transaktionen in verteilten Datenbanken
7 Verteilungsabstraktion
WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK TotalView Debugger Vorgestellt von Marco Dyballa mail:
XML in Client-Server und GRID Architektur
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
JAVA RMI.
1/25 UNIVERSITY OF PADERBORN Projektgruppe KIMAS Projektgruppe KIMAS MultiAgenten-Systeme Andreas Goebels.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Entwicklung verteilter eingebetteter Systeme - Einführung
Prozesskoordination Prof. Dr. W. Riggert.
Grafische Oberflächen
Entspannte Nebenläufigkeit Andi Scharfstein, Ben Romberg Entwicklertag 2012.
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
Management- und Web Services- Architekturen
Verteilte Systeme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Verteilte Systeme Entwicklung.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmieren in Assembler
Rechnersysteme: Halbzeit Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Daten und Information.
Systemsoftware und Betriebssysteme
Datenverarbeitung im PC
Parallele Programmierung mit Java, SS 2001 Spar/Timber - Programmiersprache und Compiler für high-performance Berechnungen Technische Universität München.
JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.
Mehrbenutzerzugriff auf GIS-Daten
2. Kommunikation und Synchronisation von Prozessen 2
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
4.4 Sperrsynchronisation
Analyse und Umsetzung einer Filter-basierten Paketverarbeitungsmaschine für IP-Netzwerke Lehrstuhl für Systemarchitektur und Betriebssysteme Forschungs-
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
5.1.2 Sequentielle Konsistenz
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Hier wird Wissen Wirklichkeit Organic Computing – Teil 3c, Folie 1 - Prof. Dr. Uwe Brinkschulte Middleware:in verschiedenen Kontexten gebrauchter Begriff,
C Tutorium – Shared Memory – Knut Stolze. 2 Shared Memory Ein Speicherbereich, auf den mehrere Prozesse Zugriff haben – Also kein privater Speicher –
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
Center for Biotechnology Bielefeld Bioinformatics Service Netzwerk - Programmierung Threads Alexander Sczyrba Jan Krüger.
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Remote Method Invocation
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

Interprozess- kommunikation (IPC) Marcel Waldvogel

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

Bugs damals und heute http://www.history.navy.mil/photos/pers-us/uspers-h/g-hoppr.htm http://www.tuxedo.org/~esr/jargon/html/entry/bug.html

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

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