Implementing and using execution time clocks in Ada hard real-time applications
Off-line analysis techniques for hard real-time systems are all based on the assumption that we can estimate the worst-case execution time of the different tasks executing in the system. In the traditional cyclic-executive schedulers, execution time limits were enforced for each task by the scheduler. Unfortunately, in concurrent hard real-time systems such as those using the tasking model defined in Ada, no bound on the execution time of tasks is enforced, which may result in a system timing malfunction not detected by the analysis techniques. In this paper we explore the implementation of execution time clocks within the task scheduler, and we describe methods to detect execution time overruns in the application, and to limit their effects. We also discuss the use of execution time clocks to enhance the performance of sporadic server schedulers implemented at the application level.
KeywordsScheduling Hard Real-Time Ada 95 Execution Time Sporadic Server
Unable to display preview. Download preview PDF.
- A. Burns and A. Wellings. “Real-Time systems and Programming Languages”. 2nd. edition. Addison-Wesley, 1997.Google Scholar
- IEEE Standards Project P1003.1d, “Draft Standard for Information Technology-Portable Operating System Interface (POSIX)-Part 1: Additional Realtime Extensions”. Draft 10. The Institute of Electrical and Electronics Engineers, January 1997.Google Scholar
- ISO/IEC Standard 9945-1:1996. “Information Technology-Portable Operating System Interface (POSIX)-Part 1: System Application Program Interface (API) [C Language]”. The Institute of Electrical and Electronics Engineers, 1996.Google Scholar
- M. González Harbour, J.J. Gutiérrez García, and J.C Palencia Gutiérrez. “Implementing Application-Level Sporadic Server Schedulers in Ada 95”. Proceedings of the 1997 Ada-Europe International Conference on Reliable Software Technologies, in Lecture Notes in Computer Science, Vol. 1251, Springer, June 1997.Google Scholar
- M.H. Klein, T. Ralya, B. Pollak, R. Obenza, and M. González Harbour. “A Practitioner's Handbook for Real-Time Analysis”. Kluwer Academic Pub., 1993.Google Scholar
- J. Liu, K.J. Lin, W.K. Shih, A. Chuang-Shi Yu, J.Y. Chung, and W. Zhao. “Algorithms for Scheduling Imprecise Computations”. IEEE Computer, pp. 58–68, May 1991.Google Scholar
- F. Mueller. “A Library Implementation of POSIX Threads under UNIX”. 1993 Winter USENIX, January, 1993, San Diego, CA, USA.Google Scholar
- F. Mueller. “Generalizing Timing Predictions to Set-Associative Caches”. Proceedings of the 9th Euromicro Workshop on Real-Time Systems, pp. 64–71, Toledo, Spain, June 1997.Google Scholar
- P. Puschner and A.V. Schedl. “Computing Maximum Task Execution Times: A graphbased approach”. Real-Time Systems Journal, Vol. 13, No. 1, pp. 7–91, July 1997.Google Scholar
- N. Zhang, A. Burns, and M. Nicholson. “Pipelined Processors and Worst-Case Execution Times”. Real-Time Systems Journal, Vol. 5, No. 1, pp. 1–62, 1993.Google Scholar