Flexible task graphs: a unified restricted thread programming model for java

  • Authors:
  • Joshua Auerbach;David F. Bacon;Rachid Guerraoui;Jesper Honig Spring;Jan Vitek

  • Affiliations:
  • IBM Research, Hawthorne, NY, USA;IBM Research, Hawthorne, NY, USA;Ecole Polytechnique Fédérale de Lausanne, Lausanne, Switzerland;Ecole Polytechnique Fédérale de Lausanne, Lausanne, Switzerland;Purdue University, West Lafayette, IN, USA

  • Venue:
  • Proceedings of the 2008 ACM SIGPLAN-SIGBED conference on Languages, compilers, and tools for embedded systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The disadvantages of unconstrained shared-memory multi-threading in Java, especially with regard to latency and determinism in realtime systems, have given rise to a variety of language extensions that place restrictions on how threads allocate, share, and communicate memory, leading to order-of-magnitude reductions in latency and jitter. However, each model makes different trade-offs with respect to expressiveness, efficiency, enforcement, and latency, and no one model is best for all applications. In this paper we present Flexible Task Graphs (Flexotasks), a single system that allows different isolation policies and mechanisms to be combined in an orthogonal manner, subsuming four previously proposed models as well as making it possible to use new combinations best suited to the needs of particular applications. We evaluate our implementation on top of the IBM Web-Sphere Real Time Java virtual machine using both a microbenchmark and a 30 KLOC avionics collision detector. We show that Flexotasks are capable of executing periodic threads at 10 KHz with a standard deviation of 1.2μs and that it achieves significantly better performance than RTSJ's scoped memory constructs while remaining impervious to interference from global garbage collection.