homeUnix & Internet Unix & Shell-Programmierung: Interprozess-Kommunikation Prof. Dr. Uwe Schmidt FH Wedel

Interprozess-Kommunikation

weiter

weiter

Kommunikations-Techniken

Kommunikationsmechanismen
named pipes
sockets
streams
shared memory
weiter
?
Unterschiede?
Entfernung
der Prozesse in einem Rechnernetz
 
  • auf einer Maschine
  • innerhalb eines Dateisystems
  • LAN
  • WAN
weiter
named pipes
Kommunikation innerhalb eines Dateisystems
weiter
Anonyme pipes
who | wc -l
weiter
Named pipes
gleiche Wirkung:
 
mknod "/tmp/pipe" p
who > /tmp/pipe &
wc -l </tmp/pipe
rm /tmp/pipe
weiter
gut
Die pipe kann von mehr als zwei Prozessen genutzt werden.
weiter
client server
allereinfachste Version mit named pipes:
 
mknod message p
mknod answer  p
server <message > answer  &
client <answer  > message &
...
rm message client
weiter
n Erzeuger
ein Verbraucher
mknod pipe p
consumer  < pipe &
producer1 > pipe &
producer2 > pipe &
...
producerN > pipe &
weiter
sockets
Kommunikation im WAN
 
  • unsymmetrische Kommunikation: client server
  • server horcht auf einem port
  • client initiiert die Verbindung
weiter
in Tcl
Klient
socket <rechner> <port>
 
öffnet einen Dateideskriptor für einen client socket
Server
socket -server <opencommand> <port>
 
Das <opencommand> Kommando wird beim Öffnen einer Verbindung zu einem Klienten auf dem Server ausgeführt
weiter
asynchrones Lesen
von einem Eingabestrom
 
fileevent <filedesc> readable <command>
 
Sowie Daten im Eingabestrom zur Verarbeitung bereitliegen, wird <command> ausgeführt
weiter
gut
Ein-/Ausgabe über eine Ereignis-Schleife (event loop) abarbeiten.
gut
Eigene I/O Ereignisse (events)
weiter
Einfachster server
echo server
 
Nimmt seine Eingaben und schickt sie an die Absender zurück
weiter
gut
Wichtige Testarchitektur für den Kommunikationstest
echo server in Tcl
(Hilfsroutinen: message.tcl und setopt.tcl)

Letzte Änderung: 14.02.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel