nächste Seite: StreamsSockets, Remote Procedure Call
vorherige Seite: SignalePipes, Named Pipe


Nachrichten, Semaphoren, Gemeinsamer Datenspeicher

Mit System V.0 wurden dann weitere Möglichkeiten geschaffen, nämlich Nachrichten (messages), Semaphoren und gemeinsame Datenspeicher (shared memory).

Eine Kommunikation über Nachrichten wird dadurch realisiert, indem Nachrichten an den Nachrichtenspeicher, sogenannte ,,message queues``, geschickt werden, wo sie dann abgefragt werden können. Eine Nachricht besteht aus dem Nachrichtentext und einem Nachrichtentyp. Bei der Nachrichtenanforderung kann der Prozeß einen Nachrichtentyp angeben, wonach die Nachrichten dann in der Reihenfolge ihres Eintreffens ausgegeben werden. Falls man keinen Typ angibt, wird die nächste in der Warteschlange vorhandene Nachricht zurückgegeben.

Mit den Semaphoren wurde ein mächtiges Mittel zur Prozeßsynchronisation geschaffen. Prozesse können den Wert von Semaphoren mit ,,semop`` abfragen oder aber darauf warten, das eine Semaphore einen bestimmten Wert annimmt. Es ist auch möglich auf mehrere Semaphoren gleichzeitig zuzugreifen. Ein Nachteil dieser Semaphoren ist die Tatsache, daß einer Semaphore nicht eindeutig ein kritischer Abschnitt zugeordnet wird.

Ein gemeinsamer Datenspeicher erlaubt mehreren Prozessen auf einen Speicherbereich gemeinsam zuzugreifen. Dazu muß ein Prozeß zunächst diesen Speicherbereich anlegen. Danach müssen alle Prozesse, die auch auf diesen Bereich zugreifen wollen, diesen Speicherbereich mit ,,shmat`` anhängen und angeben, in welchen Adreßbereich er abgebildet werden soll. Bis zum Lösen durch ,,shmdt`` läßt er sich dann wie ein normaler Speicherbereich nutzen.



nächste Seite: StreamsSockets, Remote Procedure Call
vorherige Seite: SignalePipes, Named Pipe


Thorsten Schlump
Tue Jun 27 23:03:15 MEST 2000