Programming Language Primitives and Tools for Integrated Real-Time Systems Development
Time: Tue 2021-06-08 15.00
Subject area: Information and Communication Technology
Doctoral student: Saranya Natarajan , Programvaruteknik och datorsystem, SCS
Opponent: Associate Professor Haibo Zeng, Virginia Tech
Supervisor: Associate Professor David Broman, Programvaruteknik och datorsystem, SCS
The correctness of real-time systems depends on both its logical and temporal correctness. Typically, real-time systems are developed in several steps. First, the application is divided into a number of recurrent tasks and implemented using a programming language. Second, the worst-case execution time (WCET) of each task is estimated for a specific hardware platform. Finally, schedulability analysis is performed to determine if the timing requirements are met on the specified hardware. There are several challenges in each of these complex steps, as well as how to integrate them in a systematic way. Moreover, many small-scale embedded systems are implemented using the C programming language. However, the C programming language has no direct primitives for programming the system’s temporal requirements. Similarly, the uncertainties in the measured WCET values and the release jitter can render the result of the schedulability analysis unreliable. Further, the practical differences in the tools used in each of these steps make the integrated development of real-time systems challenging.
In this dissertation, we propose a set of programming primitives and tools for the integrated development of real-time systems. More specifically, we propose a small number of language primitives for programming timing, concurrency, and scheduling requirements of real-time systems. We introduce Timed C, a programming language for real-time systems that extends the C programming language with the proposed language primitives. We propose a seamless and pragmatic end-to-end toolchain that integrates the Timed C programming language, a source-to-source compiler, timing analysis, schedulability analysis, and a novel sensitivity analysis. The new approach to sensitivity analysis determines the worst-case execution time margins for weakly-hard real-time systems. We formalize a subset of the Timed C semantics and use this to design a new temporal property-based testing tool and methodology. Finally, we evaluate the proposed programming language and tools using experiments and case studies.