🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

09_BS_Kommunikation_und_Synchronisation-no-red_8c0446703a89a0fdce1e897bfdbf652e.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Betriebssysteme (BS) Synchronisation & Kommunikation Prof. Dr.-Ing. Rainer Keller Prof. Dr. Tobias Heer 1 Überblick Synchronisation & Kommunikation Übersicht der versch. IPC Möglichkeiten Signals, Sockets und Pipes...

Betriebssysteme (BS) Synchronisation & Kommunikation Prof. Dr.-Ing. Rainer Keller Prof. Dr. Tobias Heer 1 Überblick Synchronisation & Kommunikation Übersicht der versch. IPC Möglichkeiten Signals, Sockets und Pipes 2 Lernziele Konzepte des Datenaustauschs verstehen ISO/OSI-7 Schichtenmodell verstehen IPC-Verfahren verstehen 3 Einführung Kommunikation 1/4 Der Austausch von Daten ist mit die wichtigste Komponente in Datenverarbeitungssystemen. Schon früh erkannt man, dass Standardisierung notwendig ist! Ein Beispiel: der ASCII und ANSI X3.26 – 1980/R1991 Standard Hier: Hollerith Lochkarte aus den 1930er Jahren... Der Deutsche Hermann RASSENAMT - U4 Hollerith ist der Begründer der späteren International Business Machines (IBM). Ein Beispiel, wie Technologie aufs Schlimmste missbraucht werden kann. 4 Einführung Kommunikation 2/4 Kommunikation kann durch Datenaustausch mittels: » Dateien (bspw. über die Festplatte) » Ein Netzwerk oder » Gemeinsamen Speicher s durchgeführt werden. Aber: Unterschätze nie die Bandbreite eines Fahrradkurier mit Festplatten Im Folgenden vertiefen wir Netzwerkkommunikation 5 Einführung Kommunikation 3/4 Ein gutes Beispiel ist das ISO/OSI-7-Schichten Modell: ISO/OSI-Schicht: Funktion: 7. Anwendung (Application) Netzwerkanwendungsschicht, die Daten verarbeitet... 6. Darstellung (Representation) Datenrepräsentation, Verschlüsselung, Umwandlung in maschinenunabhängige Daten 5. Sitzung (Session) Verwaltung von Sessions zwischen Anwendungen 4. Transport (Transport) End-to-End Verbindung, Zuverlässigkeit, Flow Control 3. Vermittlung (Network) Wahl des Pfads und Logische Adressierung 2. Sicherung (Data Link) Physikalische Adressierung 1. Bitübertragung (Physical Layer) Signalverarbeitung Das ISO Modell wurde schon während der Standardisierung durch das parallel entwickelte amerikanische DARPAnet obsolet! Aber es ist geeignet, um Netzwerktechnik einzuordnen. 6 Einführung Kommunikation 4/4 Das heißt die Kommunikation läuft zwischen Schichten: weiterISO/OSI-Schicht Computer 1: ISO/OSI-Schicht Computer 2: gibt 7. Anwendung (Application) 7. Anwendung (Application) 6. Darstellung (Representation) 6. Darstellung (Representation) 5. Sitzung (Session) 5. Sitzung (Session) 4. Transport (Transport) 4. Transport (Transport) 3. Vermittlung (Network) 3. Vermittlung (Network) 2. Sicherung (Data Link) 2. Sicherung (Data Link) 1. Bitübertragung (Physical Layer) 1. Bitübertragung (Physical Layer) hiefrt Daten nach oben , Zwischen den Schichten werden Protokolle definiert! Welche Protokolle kennen Sie? 7 Beispiele von Kommunikationsprotokollen 8 Definition Protokoll Diese Definition sollten Sie kennen: „Ein Protokoll ist eine exakte Vereinbarung, nach der Daten zwischen Computern bzw. Prozessen ausgetauscht werden, die (durch ein Netz) miteinander verbunden sind.“ 815.. Exacten verhalten Zwische compute und prozess : Es Er seh! · prozesse Radbein 9 Theorie: Eigenschaften von Kommunikation bs TCb Us. UPP Diese Komm.-eigenschaften sind zu unterscheiden: ↑ Verbindungsorientierte- / Verbindungslose Kom. 9 30 & i- % - ↑ ↑ M :..ist - : - Punkt-zu-Punkt- / Mehrpunktverbindung ~ Si~ IP VsIGnP - - I Uni-/Bidirektionale Verbindung unix pipesus TCP Socket. Zwei-Seitige / 1-seitige Kommunikation Rost - Übertragungsgranularität Paketor intierte Verbindung. Reihenfolgentreu / Reihenfolge nicht garantiert Korrektheitsgarantie prüfsumme gesichert - 6 : 16' ( Qualitätsgarantien Definierte Quality of-Serve Us Best ffloot. Kontrollfluss-Steuerung? Zuvermeidung von Überlast. Erkennung und Behandlung von Kollisionen? 10 Evaluation von Kommunikation Wichtige Kriterien zur Evaluation von Kommunikation: » Bandbreite: Wie viele Daten können pro Sekunde übertragen werden? Bspw. MB/s, Gbps » Latenzzeit: Zeit der Verzögerung, bis die ersten Daten beim Empfänger angekommen sind, meist aber bi-direktionale Latenz, d.h. bis der Sender weiß, daß die Daten beim Empfänger angekommen sind. » Message Rate: Wie viele Pakete können pro Sekunde eingespeist werden? Bspw. Infiniband Mellanox EDR 100 Gbit/s Switch mit 12x: Latenz: ca. 0,7 µsec (!) (bei TCP über Ethernet ca. 20 – 40 ms) Bandbreite: ca. 36 GB/s (!) Nachrichten/s (engl. Message rate): 7 Mrd. Msg/s (!) 11 Interprozesskommunikation & Synchronisation 12 Übersicht Interprozess Kommunikation - Verfahren zur Interprocess Communication (IPC) IPC-Art Verfügbar auf OS? Datei - Auf allen Betriebssystemen verfügbar. 91918. Signale Auf den meisten (Windows exponiert diese nicht für IPC) Sockets Auf allen Betriebssystemen (TCP, UDP, Unix Sockets) gibt Message Queues Auf den meisten Betriebssystemen (auch Windows SDK) Pipe POSIX-kompatible (auch Windows) Named Pipe POSIX-kompatible (auch Windows) Semaphore POSIX-kompatible (auch Windows) Memory-Mapping POSIX-kompatible (auch Windows) Message Passing MPI Schnittstelle, aber auch Java RMI, CORBA, (Shared Nothing) Eventuell gibt es je nach OS weitere Möglichkeiten? 13 Race Conditions. Es ! 52 9. Beispiel: » Printer Spooler hat eine Liste von zu druckenden Dateien » Zwei Prozesse möchten eine Datei zeitgleich drucken » Prozess A liest 7 als nächsten Freien Platz und merkt sich 7 und wird schlafen gelegt » Prozess B liest 7 als nächsten freien Platz, merkt sich 7 und schreibt seine zu druckende Datei an 7 » Prozess A wird aufgeweckt und schreibt seine zu druckende Datei an die zuvor gemerkte 7 à Lost Update: „Race Condition“ hängt von Scheduling ab. Nicht-deterministische Fehler. Quelle: Tanenbaum, Modern Operating Systems Betriebssysteme – Virtuelle Speichverwaltung Prof. Dr.-Ing. Rainer Keller, Hochschule Esslingen 14 Synchronisation und Kommunikation Bei Kommunikation über gemeinsame Ressource ist die Synchronisation zwischen Kommunikations-Partnern essentiell: » Es muss verhindert werden, dass durch gleichzeitigen Zugriff Inkonsistenzen in den Daten entstehen. Dies passiert durch Mutexe/Semaphore/Locks zum gegenseitigen Ausschluss. » Gemeinsame Nutzung beschränkter Betriebsmittel wie zum Beispiel von Peripheriegeräten. Hierbei können ebenfalls Mutex-Verfahren eingesetzt werden, häufig werden aber komplexere Methoden des Schedulings benötigt. » Übergabe von Daten bzw. Nachrichten von einem Prozess an einen Anderen, also Interprozesskommunikation. » Steuerung von Unterprozessen durch Signale, insbesondere das Abbrechen von Prozessen oder das Warten darauf, dass sie terminieren. 15 Implementierungen für Synchronisation Semaphore: 1965 von Prof. Dijkstra erfundene Datenstruktur und Operationen: eine Zählvariable speichert den Zustand des Semaphors, Operationen P und V belegen Semaphor, bzw. geben diesen wieder frei. Monitore: 1974 von C.A.R. Hoare definiert: die Bündelung von Daten und Mutex zu einem Objekt, zusammen mit Monitor-Operationen. Java: synchronized Mutex (binärer Semaphor) Abwandlung: Read-/Write Mutex (parallel mehrere Reads erlaubt!) Vor allem auf Betriebssysteme-Ebene: Spinlocks Die CPU versucht ständig aktiv, den Lock zu nehmen: „Busy waiting“ Atomic Operations Unterstützt durch die HW: die CPU bietet Instruktionen 16 Synchronisation und Kommunikation Synchronisation – Variante 1 Task 1 Task 2 Die Sperrsynchronisation Temperatur Mutex für Sensoren auslesen Temperatur Tabelle belegen Sperr- synchronisation Mutex für Temperatur- Temperatur Tabelle lesen Wichtig hierbei: Tabelle belegen kritischer Bereich Kritischer Bereich sollte Mutex für so kurz wie möglich ge- Temperatur- Tabelle ablegen Temperatur- Tabelle freigeben halten werden Verschiedene Möglichkeiten Mutex für Temperatur- Verteilung Temperatur- Sperren zu implementieren Tabelle freigeben ausdrucken (atomics, spinlocks, mutex) 17 Synchronisation und Kommunikation Synchronisation – Variante 2 Task 1 Task 2 Reihenfolgensynchronisation Temperatur- Sensoren auslesen Task Wichtig hierbei: blockiert Temperatur- Implementation und Nutzung Verteilung in komplizierter! Temperatur- Tabelle ablegen Reihenfolgen- synchronisation Task Temperatur- Bei großer Anzahl von Tasks/ blockiert Tabelle lesen Threads nicht besonders Temperatur- skalierend... Verteilung ausdrucken 18 Synchronisation und Kommunikation Ein Semaphore besteht aus: zwei nicht unterbrechbaren Operationen P (Passieren) und V (Verlassen) einer Zählvariablen P V Zähler := Zähler - 1 Zähler := Zähler + 1 nein nein Zähler

Use Quizgecko on...
Browser
Browser