3. Kommunikation

 


... [Informatikseminar WS04/05] ... [Inhalt] ... [zurück] ... [vor] ...

a. Grundlagen

In Systemen, die keine gemeinsame Nutzung von Daten erlauben, werden Nachrichten als ein Mittel zur Interprozesskommunikation und -synchronisation angesehen. Dieses Verfahren findet auch Anwendung bei der Synchronisierung von Multiprozessorsystemen und bei verteilten Systemen.
Hierzu werden zwei Operationen implementiert: send(channel, message) und receive(channel, message). Man unterscheidet zwei Arten von Kommunikation, auf der einen Seite die synchrone Kommunikation, bei der der Versender der Nachricht solange blockiert wird, bis die Nachricht vom Empfänger angenommen wurde und analog dazu der Empfängerprozess blockiert wird, bis der Sender eine Nachricht abgesetzt hat. Bei der asynchronen Kommunikation wird der Sender nicht blockiert, eine Programmiersprache, bzw. Betriebssystem muss also eine Möglichkeit zur Pufferung von noch nicht abgerufenen Nachrichten bereitstellen.

Auch muss man die Adressierung einer Nachricht in zwei Kategorien unterteilen, zu nennen hier sind die direkte Adressierung, bei der vorausgesetzt wird, dass die Prozesse einen Namen besitzen, um sie direkt ansprechen zu können. Dem gegenüber steht die indirekte Kommunikation, die über eine Mailbox oder einen Port abgewickelt werden kann. Zur Unterscheidung dieser beiden Möglichkeiten soll das folgende Schaubild dienen:

Bei der Mailbox ist es möglich, mehrere Prozesse an diese Mailbox senden zu lassen, und diese zwischengespeicherten Nachrichten dann von mehreren Prozessen abrufen zu lassen.
Die zweite Variante über den Port erlaubt ebenfalls das Senden von Nachrichten durch mehrere Prozesse, allerdings wird sich hier festgelegt auf einen Empfänger.



... [Informatikseminar WS04/05] ... [Inhalt] ... [zurück] ... [vor] ...