next up previous contents index
Weiter: Spezifikation und Implementierung Hinauf: Ada - Ein Überblick Zurück: 9.10 Die Termination

Geschützte Objekte

   

Mit den im vorigen Kapitel vorgestellten Tasks steht dem Ada-Programmierer ein unheimlich mächtiges Werkzeug zur Verfügung, um Multitasking-Anwendungen zu schreiben. Es gibt allerdings in solchen Anwendungen Probleme, für deren Lösung Tasks nicht das beste Hilfsmittel sind.

Ein illustratives Beispiel ist etwa, wenn mehrere parallel laufende Tasks auf ein und dasselbe Objekt lesend und/oder schreibend zugreifen wollen. Wenn es nur Tasks zur Lösung dieses Problems gäbe, müßte man um das vor parallem Zugriff zu schützende Objekt eine ,,Task-Hülle`` errichten. Die Lese- und Schreiboperationen des Objekts werden als Entries realisiert und die korrekte Synchronisation ist durch die Semantik des ,,Hüllen-Tasks`` garantiert.

Allerdings hieße das, mit Kanonen auf Spatzen schießen. Wie hinreichend bekannt, kann dieses Problem nämlich auch durch einen einzigen Semaphor gelöst werden, der bei weitem nicht denselben Overhead mit sich bringt wie ein zusätzlicher, eigentlich mißbräuchlich verwendeter ,,Hüllen-Task``.

Semaphore sind nun aber Betriebssystemmittel, deren Verwendung die Portierung eines Programmes verschlechtert. Daher gibt es in Ada ein Programmkonstrukt, das die Realisierung von vor parallelem Zugriff geschützten Objekten ermöglicht.





Johann Blieberger
Wed Feb 11 09:58:52 MET 1998