next up previous contents
Next: Implementierung Up: Implementierung in Hardware Previous: Schnittstellen   Inhalt

Ereignisse

Eine der wichtigsten Eigenschaften des Komodo-Mikrocontrollers ist die Bearbeitung externer Ereignisse mit Interrupt Service Threads. Um dies zu realisieren, besitzt jeder Thread zwei Aktiv-Bits, die er durch unterschiedliche Suspend-Befehle zurücksetzen kann, wodurch er sich abschaltet.

Das Software-Aktiv-Bit dient der Synchronisierung mehrerer Threads. Java benutzt zu diesem Zweck das Synchronized-Konstrukt, das intern auf eine Art Monitor abgebildet wird. Wenn ein Thread eine als synchronized gekennzeichnete Methode aufrufen will, in der sich bereits ein anderer Thread befindet, setzt er sein Software-Aktiv-Bit auf 0 und wartet. Sobald der andere Thread die Methode verlassen hat, setzt er das Bit wieder auf 1, der erste Thread wird wieder aufgeweckt und kann erneut versuchen, die Methode aufzurufen. Weitere Einzelheiten zu Monitoren und zur Synchronisation von Java-Threads können in [Unge97] nachgelesen werden.

Das Hardware-Aktiv-Bit dagegen dient der Bearbeitung externer Ereignisse. Tritt ein solches Ereignis auf, wird das Bit auf 1 gesetzt, der Thread startet sofort und kann mit der Behandlung beginnen. Sobald er fertig ist, setzt er das Bit auf 0 zurück und wartet auf das nächste Eintreffen des Ereignisses.



Alexander Schulz
2000-06-18