Section: New Results
Operating system and virtual machine technology
The work in this area within Sardes is currently undergoing a transition, with two notable directions: first, a new research direction on virtual machine support for component-based programming, and second an increased emphasis on operating system services for multiprocessor systems on chip (MPSoC) or multicore architectures.
The work on virtual machine support for component-based programming stems from the need to revisit the design of current object-oriented virtual machines such as the Java virtual machine or the Microsoft .Net Common Language Runtime in order to provide better support for components, including native support for software update and dynamic reconfiguration, memory protection and component isolation, as well as support for event-driven programming. This work has just begun and we will not report on it here.
EfÞcient multiprocessor support for event-driven programming
Event-driven programming is a popular approach for the development of robust applications such as network servers and clients. The strength of this model mainly lies in its expressivity (fine-grain management of concurrency including asynchronous network and disk I/O), portability, support for dynamic reconfiguration, and, in some cases, lower memory and better performance than other design strategies. However, a genuine event-based library cannot take advantage of multiprocessor platforms since it relies on a single thread executing the main processing loop. The main approach proposed to date for supporting multiprocessor execution within an event-based library consists in: (i) enforcing correctness by allowing programmers to incrementally inject support for safe parallel execution through annotations specifying events that can run concurrently and (ii) dynamically balancing the load on the multiple cores via workstealing. Our ongoing research work strives to improve both the programming interface and the performance of event-based libraries for multicore platforms. Most of our work so far has focused on the latter aspect. We propose novel event dispatching heuristics and design choices to improve the behavior of workstealing, taking into account parameters such as cache affinities of tasks and inherent synchronization costs. The first evaluations of our runtime on high performance network servers show that it achieves better throughput than existing solutions. Part of this work is reported in the Master thesis of Ludovic Demontes and Sylvain GenevŽs.