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

Version [22459]

Dies ist eine alte Version von BSys05Kommunikation erstellt von RonnyGertler am 2013-03-26 19:14:13.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Betriebssysteme (Betriebssystemtheorie) - Kapitel 5 - Kommunikation


Inhalte von Dr. E. Nadobnyh


Definition und Überblick


Eine Kommunikation ist ein expliziter Datenaustausch zwischen kooperierenden Prozessen.

 (image: https://hssm.hqedv.de/uploads/BSys05Kommunikation/BSys26.gif)


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: https://hssm.hqedv.de/uploads/BSys05Kommunikation/BSys27.gif)

2) Beim Nachrichtenaustausch (nachrichtenbasierte Kommunikation) rufen Prozesse Systemfunktionen auf und werden vom Betriebssystem automatisch synchronisiert.

 (image: https://hssm.hqedv.de/uploads/BSys05Kommunikation/BSys28.gif)


5.1. Shared Memory


Definition und Eigenschaften


Shared Memory ist ein Hauptspeicherbereich, der:
  1. mittels der Systemaufrufe eingerichtet wird,
  1. für mehrere Prozesse sichtbar ist.

Eigenschaften:
  1. Der eigentliche Datenaustausch kann ohne weitere Systemhilfe durchgeführt werden.

  1. Ein gegenseitiger Ausschluss ist nicht garantiert.

  1. 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


Schritte Windows Unix
Öffnen und Schliessen CreateFileMapping(...);
CloseHandle(...);
shm_open(...);
shm_unlink(...);
Einblenden und Ausblenden ... p =MapViewOfFile(...);
//p-Pointer
UnmapViewOfFile(...);
... p =mmap(...);
close(...);
Speicher- Zugriff durch Zeiger *p=...; *p=...;


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:
  1. 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: https://hssm.hqedv.de/uploads/BSys05Kommunikation/BSys29.gif)


Message Queue und Pipe


Diese klassische Formen des Nachrichtenaustausches sind ähnlich:

1) Eine Message Queue (Nachrichtenschlange) ist eine geordnete Liste von Nachrichten.
Eigenschaften:
  1. Queues erlauben es einem Prozess, beliebige Nachrichten zu anderen Prozessen zu schicken.
  1. Die Nachrichten können in Queue nach Priorität sortiert werden.

2) Eine Pipe ist ein unidirektionaler Kanal zwischen zwei Prozessen.
Eigenschaften:
  1. Ein Prozess schreibt in den Kanal einen Strom von Bytes, den der andere Prozess lesen soll.
  1. 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: https://hssm.hqedv.de/uploads/BSys05Kommunikation/BSys30.gif)

b) bei Pipe sind die Nachrichtengrenzen unsichtbar.

 (image: https://hssm.hqedv.de/uploads/BSys05Kommunikation/BSys31.gif)

Eine Nachricht kann durch eine Pipe z.B. in zwei Teilen gesendet und in drei Teilen empfangen werden.


5.3. Pipes










CategoryBSys
Diese Seite wurde noch nicht kommentiert.
Valid XHTML   |   Valid CSS:   |   Powered by WikkaWiki