Places'08 counts with an invited talk by Jan Vitek and an invited tutorial by Alan Mycroft.
Programming Models for Concurrency and Real-time
Jan Vitek _ Purdue University
Modern real-time systems are increasingly large, complex and concurrent programs which must meet stringent performance and predictability requirements. Programming those systems require fundamental advances in programming languages and runtime systems. This talk presents our work on Flexotasks, a programming model for concurrent, real-time systems inspired by stream-processing and concurrent active objects. Some of the key innovations in Flexotasks are that it support both real-time garbage collection and region-based memory with an ownership type system for static safety. Communication between tasks is performed by channels with a linear type discipline to avoid copy of messages, and by a non-blocking transactional memory facility. We have evaluated our model empirically within two distinct implementations, one based on Purdue's Ovm research virtual machine framework and the other on Websphere, IBM's production real-time virtual machine. We have written a number of small programs, as well as a 30 KLOC avionics collision detector application. We show that Flexotasks are capable of executing periodic threads at 10 KHz with a standard deviation of 1.2us and have performance competitive with hand coded C programs.
Enhancing program structures for communication
(or what do we want sensor-driven systems to tell us?)
Alan Mycroft _ University of Cambridge
Increasingly, the world of computation is no longer "data entry, compute, output''; rather, it consists of islands of reasonably understood autonomous computation connected by communication. Examples range from interactive websites to wireless-enabled car satellite navigation units.
In such systems, communication is typically understood at a very low level---a programmer works with streams, packets and re-tries, often expressed as part of a program library. We believe that if systems are to get larger and more reliable, higher-level communication specifications will become essential.
By considering a range of systems, including computer architectures, sensor-based computing and client-server web applications, we identify the core issues presented by today's standard techniques for expressing communication. We then describe some future approaches which attempt to address these deficiencies.