Evolving real-time systems using hierarchical scheduling and concurrency analysis

John Regehr, Alastair Reid, Kirk Webb, Michael A. Parker, Jay Lepreau
University of Utah
[pdf] [doi]

Proceedings of the 24th IEEE Real-Time Systems Symposium (RTSS 2003)
Cancun, Mexico
December 2003

Abstract

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.

First page of paper

BibTeX

@inproceedings{DBLP:conf/rtss/RegehrRWPL03 , abstract = { 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. } , affiliation = {University of Utah} , ar_file = {RTSS_03} , ar_shortname = {RTSS 03} , author = {John Regehr and Alastair Reid and Kirk Webb and Michael A. Parker and Jay Lepreau} , booktitle = {Proceedings of the 24th IEEE Real-Time Systems Symposium (RTSS 2003)} , day = {3-5} , doi = {10.1109/REAL.2003.1253251} , file = {rtss03-preprint.pdf} , location = {Cancun, Mexico} , month = {December} , pages = {25--36} , png = {rtss03-preprint.png} , publisher = {IEEE Computer Society} , title = {{E}volving real-time systems using hierarchical scheduling and concurrency analysis} , year = {2003} }