Wissensdatenbank Wirtschaftsrecht

aktuelles Dokument: BSys05Kommunikation
image4
image3
image2
image1
 Alle Kategorien:
  Forschungsdatenbank
  Lehrveranstaltungen
  Lexikon
  Literatur
  Rechtsgebiete
  Rechtsprechung
  Service
  Studium F H S
  Wissensmanagement
ich war hier: BSys05Kommunikation

Revision history for BSys05Kommunikation


Revision [83410]

Last edited on 2017-08-29 15:18:09 by ClaudiaMichel
Additions:
CategoryBSys
Deletions:
CategoryBetriebssysteme


Revision [83224]

Edited on 2017-08-16 14:31:43 by ClaudiaMichel
Additions:
CategoryBetriebssysteme
Deletions:
CategoryDelete


Revision [72174]

Edited on 2016-09-27 12:54:38 by NicoleHennemann
Additions:
CategoryDelete
Deletions:
CategoryBSys


Revision [22463]

Edited on 2013-03-26 19:29:37 by RonnyGertler
Additions:
""ServerSocket set = new ServerSocket(4711); ""
Deletions:
ServerSocket set = new ServerSocket(4711);


Revision [22462]

Edited on 2013-03-26 19:28:36 by RonnyGertler
Additions:
{{image class="center" url="BSys32.gif" width="500"}}
Legende: BS+KS – Betriebssystem und Kommunikationssystem
===Client-Server-Betrieb===
**1) Definition**
Client-Server-Betrieb ist eine Art des Nachrichtenaustausches:
a) Ein Client (Auftraggeber) ist ein Prozess, der Dienstleistungen beantragt.
b)Ein Server (Auftragsnehmer) ist ein Prozess, der Dienstleistungen erbringt.
**2) Funktionsweise**
{{image class="center" url="BSys33.gif" width="500"}}
a) Ein Client sendet zum Server einen Auftrag (Anfrage, Request).
b)Wenn der Server den Auftrag erledigt hat, liefert er die Antwort (Reply) an den Client zurück.
**3) Eigenschaften**
a) Prinzipiell ist die Client-Server-Kommunikation asymmetrisch: Zuerst muss der Server und anschließend der Client gestartet werden.
b) Ein Server kann gleichzeitig mit mehreren Clients kommunizieren.
c) Beide können auf dem gleichen oder verschiedenen Rechner laufen.
===Socket im Client-Server-Betrieb===
1) Einstellung auf Verbindungen vom Server:
ServerSocket set = new ServerSocket(4711);
Der Server besitzt eine bekannte Socket-Adresse (Portnummer), z.B. 4711, auf einem bekannten Rechner.
2) Verbindung anlegen:
<b>Server </b>
<b>Client</b>
sk2 = set.accept(); <br/>
a)Auf Anfragen warten

<tr>
b)Socket erstellen
sk1=new Socket(…, 4711); <br/>
a)Anfrage an Server senden <br/>
b)Socket erstellen
Die Anfrage vom unbekannten Rechner wird vom Server akzeptiert, wenn die die richtige Server-Adresse und Portnummer hat.

3)Datenaustausch: readLine(); und print(...);
4)Socket schließen: sk2.close(); und sk1.close();
""⇒"" Demo 3
Deletions:
{{image class="center" url="BSys32.gif" width="550"}}


Revision [22461]

Edited on 2013-03-26 19:22:36 by RonnyGertler
Additions:
""⇒"" Demo 2
=====5.4. Sockets =====
Ein Socket ist ein Objekt, welches als Endpunkt für die bidirektionale Verbindung dient. Jeder Endpunkt verbindet ein Prozess mit dem Betriebssystem und dann mit dem Kommunikationssystem.
1) Sockets gehören zu der klassischen Form der rechnerübergreifenden Kommunikation. Sie wurden 1983 in Berkeley Universität entwickelt.
2) Sockets verbinden Prozesse auf entfernten oder derselben Maschine.
3) Sockets bilden eine plattformunabhängige, standardisierte Schnittstelle und sind heute auf allen wichtigen Betriebssystemen (auch Unix, Windows) vorhanden.
Analogie: Telefonsteckdose.
===Logische Verbindung mit Sockets===
Eine Verbindung zwischen zwei Sockets kann als zwei unidirektionale Pipes dargestellt werden. Die Nachrichten werden gleichzeitig in beiden Richtungen übertragen.
{{image class="center" url="BSys32.gif" width="550"}}
Deletions:
""⇒"" 2


Revision [22460]

Edited on 2013-03-26 19:20:34 by RonnyGertler
Additions:
===Definition und Eigenschaften===
Pipe (Pipeline) ist ein unidirektionaler Kanal zwischen zwei Prozessen.
1) Die Pipe ist die älteste Technik für Interprozesskommunikationen. Pipe stammt ursprünglich aus der Unix-Welt.
2) Bevor zwei Prozesse mittels einer Pipe kommunizieren können, müssen sie zuvor diesen Kanal einrichten.
3) Pipe hat ein FIFO-Puffer. Typische Länge des Puffers ist 5KB.
4) Die Pipe-Synchronisation wird vom Betriebssystem bereitgestellt.
Begriffsverwirrung: Pipeline ist mehrstufige Befehlsausführung in der CPU.
===Implementierungen===
1) Eine Pipe ist eine Pseudodatei. Nur im DOS war es tatsächlich eine temporäre Datei.
2) Lesen und Schreiben einer Pipe ist sehr ähnlich einer Datei.
3) Unix und Windows NT haben zwei Pipe-Varianten:
a) Unnamed Pipes (Pipes, Anonyme Pipes) können nur zwei verwandte Prozesse verbinden.
b) Named Pipes (Benannte Pipes) können mehrere eliebigen Prozesse verbinden. Benannte Pipes haben ehr Möglichkeiten als anonyme.
===Eigenschaften im Vergleich===
1) Anzahl der Modi.
Unix–Pipes arbeiten mit Byteströmen (byte streams). Windows-Pipes haben zwei Modi: Byte und Nachricht.
2) Netzwerkfähigkeit.
Unix-Pipes ermöglichen die rechnerlokale Prozess-Kommunikation.
Windows-Named-Pipes sind netzwerkfähig. Sie wurden ür homogene (nur unter Windows) Client-Server-Systeme entworfen.
3) Direktionalität.
Unix-Pipes sind unidirektional.
Windows-Named-Pipes können unidirektional und bidirektional verwendet werden. ´
<b>Systemaufrufe </b>
<b>Erzeugen</b>
CreateNamedPipe();
mkfifo();
<b>Verbinden</b>
ConnectNamedPipe();<br/>
CreateFile();
open();
<b>Nachrichtenaustausch</b>
WriteFile(); <br/>
ReadFile();

write(); <br/>
read();
<b>Schliessen</b>
DisconnectNamedPipe(); <br/>
CloseHandel();

unlink();
""⇒"" 2


Revision [22459]

Edited on 2013-03-26 19:14:13 by RonnyGertler
Additions:
<b>Öffnen und
Schliessen </b>
**Bemerkungen: **
1) Beim Einblenden liefert das Betriebssystem dem Prozess die Startadresse des gemeinsamen Speichers.
2) Beim Ausblenden wird diese Startadresse ungültig gemacht.
""⇒"" Demo 1.
=====5.2. Nachrichtenaustausch =====
===Definition===
1) Beim Nachrichtenaustausch (Message Passing ) werden zwei Grundfunktionen (Systemaufrufe) vom System bereitgestellt:
send(empfänger, &nachricht);
receive(sender, &nachricht);
Bemerkung: & ist ein Adressoperator (C-Schreibweise).
2) Die gesendeten, aber noch nicht empfangenen Nachrichten (Botschaften) werden automatisch vom Betriebssystem im Nachrichtenpuffer zwischengespeichert.
3) Die empfangenen Nachrichten werden in den Empfänger-Speicherbereich gespeichert und aus dem Nachrichten-puffer entfernt.
===Eigenschaften===
1) Der Nachrichtenpuffer entkoppelt den Ablauf des Senders und des Empfängers und hilft, Geschwindigkeitsunterschiede auszugleichen. Mit dem Puffer arbeiten Sender und Empfänger asynchron.
2) Die beteiligten Prozesse werden synchronisiert:
a) Ein Empfänger wird bei leerem Zwischenspeicher blockiert.
b )Ein Sender wird bei vollem Zwischenspeicher blockiert.
3) Nachrichtenaustausch ist gut geeignet für kleinere Datenmengen, weil die Verwendung von Systemfunktionen mit zeitlichem Aufwand verbunden ist. Ein Datenaustausch von großen Datenmengen kann über einen gemeinsamen Speicher effizienter umgesetzt werden.
===Nachrichtenaustausch und Erzeuger-Verbraucher-Problem===
Die Lösung des Problems durch Nachrichtenaustausch enthält keine zusätzlichen Synchronisationsmechanismen und sieht deswegen kompakt aus.
{{image class="center" url="BSys29.gif" width="550"}}
===Message Queue und Pipe===
Diese klassische Formen des Nachrichtenaustausches sind ähnlich:
1) Eine Message Queue (Nachrichtenschlange) ist eine geordnete Liste von Nachrichten.
a) Queues erlauben es einem Prozess, beliebige Nachrichten zu anderen Prozessen zu schicken.
b) Die Nachrichten können in Queue nach Priorität sortiert werden.
2) Eine Pipe ist ein unidirektionaler Kanal zwischen zwei Prozessen.
a) Ein Prozess schreibt in den Kanal einen Strom von Bytes, den der andere Prozess lesen soll.
b) Alle Bytes werden nach FIFO-Prinzip (First In First Out) gepuffert, d.h. die Reihenfolge von Bytes bleibt erhalten.
Der wichtige Unterschied zwischen Message Queue und Pipe ist der Umgang mit den Nachrichtengrenzen:
a) bei Queue sind die Nachrichtengrenzen klar definiert,
{{image class="center" url="BSys30.gif"}}
b) bei Pipe sind die Nachrichtengrenzen unsichtbar.
{{image class="center" url="BSys31.gif"}}
Eine Nachricht kann durch eine Pipe z.B. in zwei Teilen gesendet und in drei Teilen empfangen werden.
=====5.3. Pipes =====


Revision [22458]

Edited on 2013-03-26 19:04:53 by RonnyGertler
Additions:
=====5.1. Shared Memory=====
===Definition und Eigenschaften===
Shared Memory ist ein Hauptspeicherbereich, der:
a)mittels der Systemaufrufe eingerichtet wird,
b)für mehrere Prozesse sichtbar ist.
Eigenschaften:
1)Der eigentliche Datenaustausch kann ohne weitere Systemhilfe durchgeführt werden.
2) Ein gegenseitiger Ausschluss ist nicht garantiert.
3) Der gemeinsame Speicher wird als eine speicherbasierte Datei gestaltet.
Eine Speicherbasierte Datei (Pseudodatei, memory mapped file, MMF) ist eine Abbildung einer ganzen Datei oder ihren Teil im Hauptspeicher. Daher können Dateiinhalte durch den üblichen Zeiger effizient gelesen und gespeichert werden.
===Typische Systemaufrufe===
""<table class="data" width="80%" style="border:0">
<tr>
<td>
<b>Schritte</b>
</td>
<td>
<b>Windows</b>
</td>
<td>
<b>Unix</b>
</td>
</tr>
<tr>
<td>
<b>Schritte</b>
</td>
<td>
CreateFileMapping(...);<br/>
CloseHandle(...);
</td>
<td>
shm_open(...); <br/>
shm_unlink(...);
</td>
</tr>
<tr>
<td>
<b>Einblenden
und
Ausblenden</b>
</td>
<td>
... p =MapViewOfFile(...); <br/>
//p-Pointer <br/>
UnmapViewOfFile(...);
</td>
<td>
... p =mmap(...); <br/>
close(...);
</td>
</tr>
<tr>
<td>
<b>Speicher-
Zugriff durch
Zeiger </b>
</td>
<td>
*p=...;
</td>
<td>
*p=...;
</td>
</tr>
</table>""


Revision [22457]

Edited on 2013-03-26 19:00:37 by RonnyGertler
Additions:
{{image class="center" url="BSys26.gif" width="450"}}
{{image class="center" url="BSys27.gif" }}
{{image class="center" url="BSys28.gif" }}
Deletions:
{{image class="center" url="BSys26.jpg" width="450"}}
{{image class="center" url="BSys27.jpg" }}
{{image class="center" url="BSys28.jpg" }}


Revision [22456]

Edited on 2013-03-26 19:00:16 by RonnyGertler
Additions:
===Definition und Überblick===
Eine Kommunikation ist ein expliziter Datenaustausch zwischen kooperierenden Prozessen.
{{image class="center" url="BSys26.jpg" width="450"}}
===Kommunikation und Synchronisation===

Eine Synchronisation ist eine Koordination von Prozessen im zeitlichen Ablauf oder beim Ressourcen-Zugriff.

1) Bei der Kommunikation über gemeinsame Speicherobjekte (speicherbasierte Kommunikation) greifen Prozesse direkt auf
die Speicherobjekte (Speicher, Dateien) und deswegen brauchen Prozesse für die Synchronisation zusätzliche Mittel, z.B.
Semaphoren.
{{image class="center" url="BSys27.jpg" }}
2) Beim Nachrichtenaustausch (nachrichtenbasierte Kommunikation) rufen Prozesse Systemfunktionen auf und werden vom Betriebssystem automatisch synchronisiert.
{{image class="center" url="BSys28.jpg" }}
Deletions:
{{files}}


Revision [22455]

Edited on 2013-03-26 18:57:50 by RonnyGertler
Additions:
{{files}}


Revision [22454]

The oldest known version of this page was created on 2013-03-26 18:53:57 by RonnyGertler
Valid XHTML   |   Valid CSS:   |   Powered by WikkaWiki