Linguistic Support for Real-Time Programming
The current generation of concurrent programming languages provides inadequate support for real-time computation. The goal of this project is to simplify real-time programming by separating the specification of timing constraints on a group of actors from their logical behavior. Such a separation will support incremental modification of both the timing constraints and the actor representations. Real-time constraints in our approach are represented declaratively and constrain the scheduling of groups of actors.
This project seeks to advance the validation technology for real-time systems in two aspects, nondeterminism and dynamics, by establishing a theoretical foundation for the validation of real-time systems whose timing constraints cannot be validated using the state-of-the-art technology. Its specific goals are to develop the analytical bounds and efficient algorithms for the validation of hard timing constraints of sporadic tasks that have widely varying time/resource demands and are dispatched and scheduled dynamically in multiprocessor and distributed environments, and to develop an integrated framework of rigorous validation methods that can support a full range of temporal quality-of-service guarantees.
We are building a system of software tools called PERTS. PERTS currently contains (1) basic building blocks of operating and run-time systems for time-critical applications, and (2) tools for the analysis and validation of real-time systems. PERTS tools are based on new theoretical advances in real-time scheduling paradigms and validation theory. The reusable building blocks provided by PERTS implements a broad spectrum of scheduling algorithms and resource-access protocols. When it is completed, PERTS will also contain timing analysis and measurement tools for automatic extraction of timing and resource requirements of software modules and a simulation environment for profiling the performance of complex systems.
Tasks in distributed real-time systems typically are composed of multiple subtasks, and their timing constraints are end-to-end in nature. The subtasks in each task execute in turn on functionally or physically distinct processors. The primary objective of end-to-end scheduling is to ensure that every time-critical task completes by its deadline. This project is concerned with algorithms for end-to-end scheduling in distributed real-time systems of different sizes, complexity, and dynamics. Its objective is to develop a basic framework in which strategies for end-to-end scheduling, load balancing, concurrency control, and synchronization can be integrated to ensure the responsiveness and robustness of the overall system.