Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


The Jikes RVM's threading model was refactored and made more modular last year. A native thread stub exists without any implementation. We should implement this stub for different underlying threading systems. Some of the underlying threading systems we'd hope to support are pthreads, Windows threads, glib threads and Harmony's hythreads.

In addition to a pure 1:1 native threading implementation which eliminates much of the complexity in the current Jikes RVM system relating to blocking system calls, etc., for some Jilkes RVM researchers it might continue to be useful to multiplex M "lightweight" threads above N native threads so as to permit additional flexibility in thread implementations. Although, to some approximation, this represents the current state of affairs in Jikes RVM, the current implementation conflates design decisions that were made when the original M:N threading system was implemented.

While the new pure 1:1 mapping of Java threads will be the base implementation, and will dictate the fundamental design decisions of the new threading system (e.g., permitting Java threads to block on I/O), perhaps there is a way to support user-level scheduling for extremely lightweight threads. The idea would be to rebuild user-level scheduling on a foundation that makes OS-level scheduling of native threads the default. Thus, while we address RVM-91, we might also make steps towards RVM-64. Addressing these different goals might proceed as separate projects, with some reconciliation step to bring them together later on.


Interested mentors: Tony Hosking, Ian Rogers