Implementing protected types on embedded targets
As a vendor of Ada compilers in the embedded systems marketplace, we have long been acutely aware of the need for high-level yet efficient concurrency mechanisms. Ada 83's tasking provided a high-level mechanism, but proved too inefficient for many of our customers, and as a result we found ourselves offering high-performance but non-portable alternatives. Ada 95's protected types gave us the opportunity to provide a synchronization mechanism that is both portable and efficient, and it was one of the first Ada 95 features we implemented. As we discovered, the feature provides several interesting design challenges. In this paper we examine the tradeoffs involved in replying to those challenges, and provide a rationale for the choices we made. We also cite performance statistics to see how close we came to the goal of portable, efficient scheduling in an embedded systems environment.
Unable to display preview. Download preview PDF.