One of the biggest challenges faced by embedded systems developers is designing to meet stringent timing requirements. Even though Ada was developed as a tools to help the embedded developer meet this challenge, the complexities of the Ada tasking constructs can quickly cause him to lose sight of how to address timing constraints. To be successful, it is required that we fall back on a tried and true development tool-the timing diagram.
Using timing diagrams to illustrate timing and synchronization requirements for software makes the transition to Ada tasking selections easier. Each timing pattern suggests a corresponding tasking pattern in our Ada solutions, which can then be used to evaluate tasking trade-offs based on available run-time environment facilities, processing power, and efficiency considerations.
This paper will examine a number of common, useful timing patterns, show how these patterns translate into Ada tasking structures, and discuss the tasking trade-offs that will impact the success of the design.