Supporting Complex Real-Time Workloads on Multicore Platforms
Principal Investigator: James Anderson
Funding Agency: Air Force Office of Scientific Research
Agency Number:FA9550-09-1-0549
Abstract
The advent of multicore technologies is a profound development that is impacting software design processes across a wide range of application domains. This project is directed at an important category of such applications, namely, those that have real-time constraints.
The project's specific focus is complex systems that may have components with different kinds of timing constraints (hard real-time, soft real-time, best-effort). To enable the deployment of such systems on multicore platforms, suitable infrastructure, in the form of scheduling and synchronization methods and associated analysis techniques for validating timing constraints, must be provided. The objective of this project is to provide this needed infrastructure. This objective will be met by developing a multicore-ready real-time container framework. A container is a resource-allocation abstraction that allows a task group to be "contained" and isolated from the rest of this system. In real-time systems, such an abstraction is realized through the use of scheduling policies and associated synchronization protocols that ensure "temporal isolation" among different system components. In this project, prior algorithmic research on real-time containers---which has almost exclusive focused on uniprocessors---will be extended to deal with the many complexities that arise on multicore platforms. In addition, a proof-of-concept implementation will be produced in Linux.
This research has been partially motivated by collaborative research efforts between the investigators and colleagues at Honeywell and Northrop Grumman, who are interested in determining the viability of using multicore platforms in avionics systems. Avionics workloads typically have different components that are subject to different kinds of timing requirements. A key issue in this domain is the ability to certify system designs. A suitable container abstraction would allow different system components to be developed and validated independently. Such functionality is of critical importance in the avionics domain.

