Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

Fachschaft Informatik Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen Michael Steinhuber K¨ onig-Karlmann-Gymnasium Alt¨ ot...
Author: Carin Sternberg
0 downloads 2 Views 2MB Size
Fachschaft Informatik

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen Michael Steinhuber K¨ onig-Karlmann-Gymnasium Alt¨ otting

9. Februar 2017 Folie 1/40

Inhaltsverzeichnis I 1

Kommunikation in Rechnernetzen Regeln der Kommunikation Vernetzung von Systemen Internet - ein Netz aus Netzen Das Schichtenmodell Adresse eines Rechners Router sind Post¨amter

2

Prozesskommunikation im Internet Client und Server

3

Parallele Prozesse Wartezeit nutzen - parallel arbeiten Leichte und schwere Prozesse Arbeiten mit Threads

Folie 2/40

Inhaltsverzeichnis II 4

Synchronisation von Prozessen

Folie 3/40

2.1 Kommunikation in Rechnernetzen Definition - Rechnerkommunikation ¨ Kommunikation bezeichnet die Ubertragung von Informationen in Form von Nachrichten. Diese Nachrichten enthalten Daten. Diese Daten werden erst durch die Interpretation des Empf¨angers gedeutet.

Folie 4/40

2.1.1 Regeln der Kommunikation Definition - Protokoll F¨ur die Kommunikation zwischen Rechnern werden speziell definierte formale Sprachen ben¨otigt. Diese nennt man (Kommunikations-)Protokolle. Beispiel HTTP: Anfrage: GET /index.html HTTP/1.1 Host: www.steinhuber.de

Antwort: HTTP/1.1 200 OK Server: Apache/1.3.29 (Unix) PHP/4.3.4 Content-Length: (Gr¨ oße von index.html in Byte) Content-Language: de Connection: close Content-Type: text/html (Inhalt von index.html)

Folie 5/40

2.1.2 Vernetzung von Systemen Arten der Vernetzung (Topologien): Es gibt verschiedene Konzepte der Vernetzung: • Direkte Kommunikation (point to point) • Sternkommunikation • Bus-Systeme • Token-Ring-Systeme

Folie 6/40

Direkte Kommunikation

Beschreibung Bei der direkten Kommunikation ist jeder Knoten (meist Rechner) mit jedem anderen Knoten direkt verbunden. F¨ur die Anzahl der Kanten gilt daher: Anzahl Knoten Anzahl Kanten A 2 1 B 3 3 C 4 6 D 5 10 n·(n−1) n 2 Folie 7/40

Stern-System

Beschreibung Bei Netzen in Stern-Topologie sind an einen zentralen Rechner alle anderen Rechner mit einer Zweipunktverbindung angeschlossen.

Folie 8/40

Bus-System

Beschreibung Bei der Bus-Topologie sind alle Rechner direkt mit demselben ¨ Ubertragungsmedium, dem Bus verbunden.

Folie 9/40

Bus-Systeme

1 1 Quelle: Folie 10/40

Der neue Maybach, ATZ/MTZ Sonderheft September 2002, Seite 125

Vor- und Nachteile Topologie Vorteile Direkt extrem ausfallsicher Stern relativ ausfallsicher

Nachteile sehr kostspielig komplexe Verkabelung / zentraler Knoten wird ben¨otigt (dieser kann Schwachstelle sein) g¨unstige Verkabelung alle Teilnehmer teilen sich die verf¨ugbare Bandbreite - extrem anf¨allig gegen Ausf¨alle, wenn z.B. ein Teilbereich abgetrennt ist eine Leitung mehr als beim alle Teilnehmer teilen sich Bus - sehr g¨unstig die verf¨ugbare Bandbreite

Bus

Ring

Folie 11/40

2.1.3 Internet - ein Netz aus Netzen

Das Internet ist eine Mischform aus verschiedenen Netzwerktopologien. Man nennt es daher auch das Netz aus Netzen. Siehe: http://www.yougetsignal.com/tools/visual-tracert/

Folie 12/40

2.1.4 Das Schichtenmodell

Folie 13/40

2.1.4 Das Schichtenmodell

Folie 14/40

2.1.4 Das Schichtenmodell

Folie 15/40

2.1.4 Das Schichtenmodell Definition Die Kommunikation in einem Netzwerk wird in Schichten organisiert. Ein vollst¨andiges Modell ist das ISO/OSI-Referenzmodell. Die Gesamtheit aller Klassen zur Nutzung der Netzwerkschichten nennt man Protokollstack.

Folie 16/40

2.1.4 Das Schichtenmodell Vor- und Nachteile • Vorteile • Einzelne Schichten lassen sind leicht ver¨ andern, wenn die Schnittstellen eingehalten werden. • Es lassen sich einfach Schichten hinzuf¨ ugen. • Bei Ver¨ anderung der Schnittstellen sind nur die beiden angrenzenden Schichten betroffen. • Schichtenarchitekturen kapseln Maschinendetails und f¨ordert damit die Wiederverwendbarkeit. Nur die unterste Schicht muss f¨ ur jede Plattform neu implementiert werden.

Folie 17/40

2.1.4 Das Schichtenmodell Vor- und Nachteile • Nachteile • Es ist teilweise schwierig die Struktur eines Systems sauber in Schichten einzuteilen. Wenn eine h¨ohere Schicht Funktionen einer inneren Schicht ben¨otigt, muss die direkte Abh¨angigkeit von der n¨achstunteren Schicht umgangen werden. • Die Performanz kann im Schichtenmodell etwas schlechter sein, weil mit dem Zugriff auf die Dienste einer Schicht immer ein gewisser Overhead verbunden ist.

Folie 18/40

2.1.5 Adresse eines Rechners Definition Jeder Rechner besitzt (in seinem Netzwerk) eine eindeutige IP-Adresse. Diese Adresse wird dazu verwendet, um Datenpakete von einem Rechner zu einem bestimmten anderen Rechner zu schicken. Mit dem Windows-Programm ”ipconfig” (Linux: ”ifconfig”) lassen sich die IP-Adressen eines Rechners anzeigen.

Folie 19/40

2.1.6 Router sind Post¨amter http://www.youtube.com/watch?v=4VxPazlA0Zc Film: Warriors of the net (Youtube)

Definition Die Router haben die Aufgabe Datenpakete zu vermitteln und weiterzuleiten. Man kann einen Router mit einem Postamt vergleichen, das f¨ur einen bestimmten Zustellungsbezirk (Subnetz) zust¨andig ist. Wird ein Datenpaket aus einem bestimmten Subnetz abgeschickt, so pr¨uft der Router zun¨achst, ob es f¨ur einen Rechner des selben Subnetzes bestimmt ist und leitet in diesem Fall das Paket direkt weiter. Soll es an ein anderes Subnetz geschickt werden, leitet der Router das Paket an einen passenden anderen Router weiter. Folie 20/40

2.2 Prozesskommunikation im Internet Mit dem Programm http://www.wireshark.org/Wireshark l¨asst sich die Netzwerkkommunikation ”mitschneiden”.

Folie 21/40

2.2.3 Client und Server Siehe dazu: http://steinhuber.de/images/Material/ Schule/2013/Info12/Netzwerkkommunikation.zip

Folie 22/40

2.2.3 Client und Server

Folie 23/40

2.2.3 Client und Server

Folie 24/40

2.3 Parallele Prozesse Beim gleichzeitigen Zugriff vieler Clients auf einen Server m¨ussen viele Anfragen gleichzeitig beantwortet werden. Die Benutzer der Clients wollen m¨oglichst kurz auf die Antworten warten.

Folie 25/40

2.3.1 Wartezeit nutzen - parallel arbeiten Definition Nebenl¨aufigkeit Um dieses Problem zu l¨osen, m¨ussen mehrere Prozesse gleichzeitig ablaufen. In diesem Fall spricht man von parallelen Prozessen. Greifen die Prozesse dabei auf gemeinsame Resourcen zu, k¨onnen sie sich auch gegenseitig beeinflussen. In diesem Fall spricht man von nebenl¨aufigen Prozessen. Prozesse laufen in den meisten F¨allen nur quasiparallel ab. Der Prozessor arbeitet die laufenden Prozesse abwechselnd sequentiell ab, so dass der Eindruck einer parallelen Abarbeitung entsteht.

Folie 26/40

2.3.2 Leichte und schwere Prozesse Definition Thread Man unterscheidet zwischen schwergewichtigen Prozessen (ganze Programme laufen parallel) und leichtgewichtigen Prozessen (Programmteile laufen parallel). Leichtgewichtige Prozesse k¨onnen in Java mit der Klasse Thread realisiert werden.

Folie 27/40

2.3.3 Arbeiten mit Threads (Beispiel) public class THREADBEISPIEL extends Thread { public void run () // Methode , die ausgefuehrt wird , wenn der Thread gestartet wird . { ... } }

Folie 28/40

2.3.3 Arbeiten mit Threads (Beispiel) public class THREADTEST { public THREADTEST () // Konstruktor { THREADBEISPIEL beispiel = new THREADBEISPIEL () ; // Neues Threadobjekt erzeugen beispiel . start () ; // Thread starten } }

Folie 29/40

2.4 Synchronisation von Prozessen Problematik Im Projekt ”Gemeinsamer Zugriff” werden zwei Threads gestartet, die bei einem gemeinsamen ”Anbieter” (mit Anfangswert 0) jeweils 100000 mal den Wert um 1 erh¨ohen / reduzieren. Loglisch m¨usste das Ergebnis zum Schluß 0 + 100000 − 100000 = 0 ergeben.

Folie 30/40

2.4 Synchronisation von Prozessen Problematik

Das Ergebnis wird aber nicht immer erreicht (3114 bei Abbildung). Manchmal u¨berschreibt ein Thread die Ver¨anderung des anderen Threads. Folie 31/40

2.4 Synchronisation von Prozessen

Folie 32/40

2.4 Synchronisation von Prozessen L¨osung: Semaphoren Mit Hilfe von Signalen (Semaphoren) wird daf¨ur gesorgt, dass das Schreiben des einen Threads abgeschlossen ist, bevor der andere Thread den neuen Wert lesen kann. Siehe dazu Projekt: ”Gemeinsamer Zugriff Semaphore”

Folie 33/40

2.4 Synchronisation von Prozessen

Folie 34/40

Sequenzdiagramm 1

Folie 35/40

Sequenzdiagramm 2

Folie 36/40

Sequenzdiagramm 3

Folie 37/40

Betriebsmittel-Graph

Bildet der Betriebsmittel-Graph einen Zyklus2 , dann liegt eine Verklemmung (Deadlock) vor. 2

Siehe Informatik 11 - 2.8.1

Folie 38/40

Aufl¨osen der Verklemmung Wie lassen sich Verklemmungen vermeiden? • Jeder Prozess, der nicht alle von ihm ben¨ otigten

Ressourcen anfordern kann, gibt alle bisher gehaltenen Ressourcen wieder ab.

• Ein externer Monitor u ¨berwacht den

Betriebsmittel-Graphen und entzieht einzelnen Prozessen die gehaltenen Ressourcen a . Foliea 39/40

Siehe auch http://de.wikipedia.org/wiki/Monitor_%28Informatik%29

2.4 Synchronisation von Prozessen Weiteres Beispiel: Siehe ”Dining philosophers problem”: • http: //de.wikipedia.org/wiki/Philosophenproblem • http://www.doc.ic.ac.uk/~jnm/concurrency/ classes/Diners/Diners.html

Folie 40/40