Jan Vitek
Purdue University

Preemptible Atomic Regions


The Real-time Specification for Java provides a platform that al lows real-time developers to use a wide variety of modern programming tools. However, its handling of concurrency still employs the same dangerous and difficult tools, such as mutual exclusion locking, that have been the bane of programmers for decades. This paper provides a simpler concurrency control abstraction, preemptible atomic regions, which provide safe access to a region of code, but avoid data races, priority inversion and the undue delays inherent in mutual exclusion locks. These atomic regions are layered on top of a transactional memory implementation for uni-processor systems that supports preemption of low priority threads and safe re-execution of aborted transactions. This paper describes our implementation of preemptible atomic regions in a complete Real-time Java virtual machine. We show the impact of using atomic regions on a variety of applications, including a 100KLoc Real-time Java avionics application and on a real-time CORBA server.

Host:  Jonathan Aldrich
Appointments:  Cheryl Casciola

Friday, October 7, 2005
3:30 p.m.
Wean Hall 8220

Principles of Programming Seminars