4.6 Middleware
255
Objekt
IIOP-Protokoll
Klient
ORB1
ORB2
Skeleton
Stub
Abb. 4.18 Zugriff auf entfernte Objekte mit CORBA
Ende-zu-Ende-Vorhersagbarkeit von Pünktlichkeit in einem System mit festen
Prioritäten zur Verfügung zu stellen. Dies beinhaltet das Respektieren von ThreadPrioritäten zwischen Klient und Server, um Ressourcen-Wettstreit-Situationen
aufzulösen und ein Begrenzen der Latenzen von Operationsaufrufen. Ein besonderes
Problem von Echtzeitsystemen ist es, dass Thread-Prioritäten möglicherweise nicht
beachtet werden, wenn Threads exklusiven Zugriff auf Ressourcen erhalten. Das Problem der Prioritätsumkehr (siehe Seite 231) muss in RT-CORBA behandelt werden.
RT-CORBA beinhaltet Vorkehrungen, um die Zeit zu begrenzen, innerhalb derer
eine solche Prioritätsumkehr vorkommen kann. RT-CORBA verfügt zudem über
Methoden, um Thread-Prioritäten zu verwalten. Diese Priorität ist unabhängig von
den Prioritäten des unterliegenden Betriebssystems, auch wenn sie mit den EchtzeitErweiterungen des POSIX-Standards kompatibel ist [202]. Die Thread-Priorität von
Klienten kann auf die Server-Seite übertragen werden. Prioritätsverwaltung ist auch
für Funktionen verfügbar, die gegenseitigen Ausschluss beim Zugriff auf Ressourcen
zur Verfügung stellen. Das ab Seite 233 beschriebene Prioritätsvererbungsprotokoll
muss in RT-CORBA-Implementierungen zur Verfügung stehen. Eine Menge an bereits existierenden Threads reduziert dabei den Aufwand für die Thread-Erzeugung
und Instanziierung.
4.6.3 POSIX Threads (Pthreads)
Die POSIX Thread-Bibliothek (Pthreads) ist eine Programmierschnittstelle (API) für
Threads auf Betriebssystemebene [36]. Pthreads entsprechen dem Betriebssystemstandard IEEE POSIX 1003.1c. Eine Menge von Threads kann im selben Adressraum
ablaufen, damit kann Kommunikation über gemeinsam genutzten Speicher stattfinden. Dies vermeidet die Speicherkopieroperationen, die MPI (siehe Unterabschnitt
2.8.3) normalerweise mit sich bringt. Die Pthreads-Bibliothek eignet sich daher zur
Programmierung von Mehrkern-Prozessoren, die sich einen Adressraum teilen. Die
Bibliothek beinhaltet eine Standard-API mit Mechanismen für den gegenseitigen
Ausschluss. Pthreads verwenden vollständig explizite Synchronisation [553]. Die
genaue Semantik hängt dabei vom verwendeten Speicherkonsistenzmodell ab. Es
ist schwierig, Synchronisation korrekt zu implementieren. Die Bibliothek kann als
Grundlage zur Implementierung anderer Programmiermodelle verwendet werden.
Précédent

- 275/485

Suivant