Evolving real-time systems using hierarchical scheduling and concurrency analysis

John Regehr Alastair Reid Kirk Webb Michael Parker Jay Lepreau
regehr@cs.utah.edu    reid@cs.utah.edu    kwebb@cs.utah.edu    map@cs.utah.edu    lepreau@cs.utah.edu   

University of Utah, School of Computing
50 South Central Campus Drive, Room 3190
Salt Lake City, Utah 84112-9205


We have developed a new way to look at real-time and embedded software: as a collection of execution environments created by a hierarchy of schedulers. Common schedulers include those that run interrupts, bottom-half handlers, threads, and events. We have created algorithms for deriving response times, scheduling overheads, and blocking terms for tasks in systems containing multiple execution environments. We have also created task scheduler logic, a formalism that permits checking systems for race conditions and other errors. Concurrency analysis of low-level software is challenging because there are typically several kinds of locks, such as thread mutexes and disabling interrupts, and groups of cooperating tasks may need to acquire some, all, or none of the available types of locks to create correct software. Our high-level goal is to create systems that are evolvable: they are easier to modify in response to changing requirements than are systems created using traditional techniques. We have applied our approach to two case studies in evolving software for networked sensor nodes.

To appear in Proceedings of the 24th IEEE Real-Time Systems Symposium (RTSS 2003), pages 25-36, Cancun, Mexico, December 3-5 2003.

© 2003 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.

John Regehr <regehr@cs.utah.edu>