next up previous
Nächste Seite: Kooperativität im heterogenen Sprachumfeld Aufwärts: Kooperativität Vorherige Seite: Konflikte durch globale Variablen

Konflikte durch den Zugriff auf die Umgebung

Auf das umgebende System kann von jedem Modul aus zugegriffen werden. Grundsätzlich kann man davon ausgehen, daß das umgebende System Lokalität nur auf Basis von Prozessen unterstützt, jedoch nicht auf Basis der internen Sichtbereiche eines Software-Systems. Somit können alle Ressourcen des umgebenden Systems zu potentiellen Konflikten führen. Wie schon Hansen in Concurrent Pascal zeigt, lassen sich solche Konflikte auf Basis von virtuellen Ressourcen lösen. Bei dieser Technik gibt es zu jeder externen Ressource ein Modul, das als einzige Partei darauf zugreift. Gegenüber seinen Klienten stellt es virtuelle Ressourcen zur Verfügung, die dann konfliktfrei verwendet werden können. Konkurrierende Verwendungen virtueller Ressourcen werden dann von dem Zugriffsmodul in kooperativer Weise gehandhabt.

In der Ulmer Oberon-Bibliothek gibt es zahlreiche Beispiele für diese Technik. So werden z.B. UNIX-Signale in Ereignisse abgebildet, wobei es für Ereignisse beliebig viele Interessenten geben kann. Während UNIX nur einen einzigen Weckauftrag für jeden Prozeß unterstützt, können bei Timers beliebig viele Aufträge eingetragen werden.



Andreas Borchert 2000-12-18