In einer zeitgesteuerten zweistufigen Thread-Bibliothek hat das ausgeführte Programm keinen Einfluß auf die Unterbrechungspunkte. Dies hat zur Folge, daß sich p Threads in Ausführung befinden, i Threads konsistent in Systemaufrufen blockiert sind, und n-p-i Threads wahrscheinlich in inkonsistenten Regionen unterbrochen und suspendiert sind (Abbildung 5.2). Die Transition zur Garbage Collection bedeutet daher, daß n-i Threads bis zu einem GC point vorgerollt werden müssen5.1.
![]() |
Stellt man statt dessen sicher, daß Threads ohnehin nur an
konsistenten Punkten unterbrochen werden, reicht es aus,
Threads bis zur nächsten Unterbrechung fortlaufen zu lassen (Abbildung
5.3). Eine entsprechende
Unterbrechungsstrategie muß durch einen im user space
implementierten Scheduler in der VM realisiert werden; es ist daher
nicht möglich, auf die generischen Betriebssystembibliotheken
zurückzugreifen. Die Autoren der Jalapeño Virtual Machine von IBM
Research argumentieren, auf diese Weise die Transition zur Garbage
Collection signifikant zu beschleunigen [Alpern et al., 2000].
![]() |
Allerdings muß man folgendes beachten: Die Implementierung des Schedulers wird hierdurch komplexer. Der Jalapeño Scheduler kann sich auf polling eines hardwareunterstützten, zeitgesteuerten Prozessorbits abstützen. Fehlt eine solche Unterstützung, liegt der Verdacht nahe, daß der Aufwand hier von der Speicherverwaltung in den Scheduler verlagert wird; es folgt also kein Performancegewinn, dafür aber eine gleichmäßigere Verteilung des Verwaltungsaufwands. Entsprechende Studien sind uns nicht bekannt.