Check out the new USENIX Web site. next up previous
Next: Experimental Evaluation Up: System Components and Implementation Previous: Bytecode Interpretation

Threading and Synchronization


  
Figure 11: Multithreading modules and interfaces. Modules are shown as blocks divided by horizontal planes representing interfaces.
\includegraphics[scale=0.7]{threads.ps}

To maximize flexibility, Jupiter uses two levels of interfaces for threading and synchronization, shown in Figure 11. The high-level interfaces, called Thread and Monitor (plus the corresponding Sources), provide the full Java concurrency semantics. The low-level interfaces, called ThinThread, Mutex, and Condition, provide the minimal semantics required by Java. These low-level interfaces are referred to collectively as the ThinThreads interface, which provides a small subset of the POSIX threads semantics [17]. The high- and low-level interfaces are complimentary in several ways:

Separating the Java concurrency semantics from the semantics of the underlying thread library makes threading and synchronization modules easier to implement and modify.


next up previous
Next: Experimental Evaluation Up: System Components and Implementation Previous: Bytecode Interpretation
Tarek S. Abdelrahman
2002-05-27