skip to main content
research-article

Measuring and policing blocking times in real-time systems

Published:27 August 2010Publication History
Skip Abstract Section

Abstract

In real-time systems, the execution-time overrun of a thread may lead to a deadline being missed by the thread or even others threads in the system. From a fault tolerance perspective, both execution time overruns and deadline misses can be considered timing errors that could potentially cause a failure in the system's ability to deliver its services in a timely manner. In this context, the ideal is to detect the error in the system as soon as possible, so that the propagation of the error can be limited and error recovery strategies can take place with more accurate information. The run-time support mechanism usually deployed for monitoring the timing requirements of real-time systems is based on deadline monitoring, that is, the system calls specific application code whenever a deadline is violated. Recognizing that deadline monitoring may not be enough for providing an adequate level of fault tolerance for timing errors, major real-time programming standards, like Ada, POSIX and the Real-Time Specification for Java (RTSJ), have proposed different mechanisms for monitoring the execution time of threads. Nevertheless, in order to provide a complete fault tolerance approach for timing errors, the potential blocking time of threads also has to be monitored. In this article, we propose mechanisms for measuring and policing the blocking time of threads in the context of both basic priority inheritance and priority ceiling protocols. The notion of blocking-time clocks and timers for the POSIX standard is proposed, implemented and evaluated in the open-source real-time operating system MaRTE OS. Also, a blocking time monitoring model for measuring and policing blocking times in the RTSJ framework is specified. This model is implemented and evaluated in the (RTSJ-compliant) open-source middleware jRate, running on top of MaRTE OS.

References

  1. Avizienis, A., Laprie, J.-C., and Randell, B. 2001. Fundamental concepts of dependability. Tech. rep. CS-TR-739, Newcastle University.Google ScholarGoogle Scholar
  2. Barnes, J. 2005. Rationale for Ada 2005: 4 Tasking and real-time. Ada User J. 26, 3, 1--17.Google ScholarGoogle Scholar
  3. Belliardi, R., Brosgol, B., Dibble, P., Holmes, D., and Wellings, A. J. 2004. The Real-Time Specification for Java—Version 1.0.2. Addison-Wesley, Reading, MA.Google ScholarGoogle Scholar
  4. Bougueroua, L. George, L., and Midonnet, S. 2006. An execution overrun management mechanism for temporal robustness of Java real-time systems. In Proceedings of the 4th International Workshop on Java Technologies for Real-time and Embedded Systems. ACM, New York, 1--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Burns, A. and Wellings, A. 1993. Measuring, monitoring and enforcing CPU execution time usage. ACM Ada Letters XIII, 2, 54--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Burns, A. and Wellings, A. J. 2001. Real-Time Systems and Their Programming Languages. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Corsaro, A. and Schmidt, D. C. 2003. The design and performance of real-time Java middleware. IEEE Trans. Parall. Distrib. Syst. 14, 11, 1155--1167. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gai, P., Abeni, L., Giorgi, M., and Buttazzo, G. 2001. A new kernel approach for modular real-time systems development. In Proceedings of the 13th Euromicro Conference on Real-Time Systems. IEEE Computer Society Press, Los Alamitos, CA, 199--208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. GCJ. 2007. The GNU Compiler for the Java#8482; Programming Language. http://gcc.gnu.org/java/.Google ScholarGoogle Scholar
  10. Harbour, M. G., Rivas, M. A., García, J. J. G., and Gutiérrez, J. C. P. 1998. Implementing and using execution time clocks in Ada hard real-time applications. In Proceedings of the 3rd Ada-Europe International Conference on Reliable Software Technologies. Lecture Notes in Computer Science, vol. 1411. Springer-Verlag, Berlin, Germany, 90--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. jRate. 2008. Java Real-Time Extension homepage. http://jrate.sourceforge.net/.Google ScholarGoogle Scholar
  12. Lampson, B. W. and Redell, D. D. 1980. Experience with processes and monitors in Mesa. Comm. ACM 23, 2, 105--117. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Laprie, J.-C. 1985. Dependable computing and fault tolerance: concepts and terminology. In Proceedings of the 15th International Symposium on Fault-Tolerant Computing. IEEE Computer Society Press, Los Alamitos, CA, 2--11.Google ScholarGoogle Scholar
  14. Lee, P. A. and Anderson, T. 1990. Fault Tolerance: Principles and Practice 2nd Ed. Springer-Verlag, Berlin, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Liu, J. W. S. 2000. Real-Time Systems. Prentice-Hall, New York.Google ScholarGoogle Scholar
  16. Manson, J., Baker, J., Cunei, A., Jagannathan, S., Prochazka, M., Xin, B., and Vitek, J. 2005. Preemptible atomic regions for real-time Java. In Proceedings of the 26th IEEE Real-Time Systems Symposium. IEEE Computer Society Press, Los Alamitos, CA, 62--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. MaRTE OS. 2008. MaRTE OS homepage. http://marte.unican.es/.Google ScholarGoogle Scholar
  18. Masson, D. and Midonnet, S. 2006. Fault tolerance with Real-Time Java. In Proceedings of the 14th International Workshop on Parallel and Distributed Real-Time Systems. IEEE Computer Society Press, Los Alamitos, CA, 1--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Nett, E., Gergeleit, M., and Mock, M. 2001. Enhancing O-O middleware to become time-aware. Real-Time Syst. 20, 2, 221--228. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. POSIX IEEE 1003.13. 2003. IEEE standard for information technology—standardized Application Environment Profile (AEP)—POSIX realtime and embedded application support. IEEE Std. 1003.13-2003.Google ScholarGoogle Scholar
  21. POSIX Standard. 2004. Portable Operating System Interface (POSIX)—The Open Group Technical Standard Base Specifications, Issue 6. IEEE Std 1003.1.Google ScholarGoogle Scholar
  22. Puente, J. A. and Zamorano, J. 2003. Execution-time clocks and Ravenscar kernels. ACM SIGAda Ada Letters XXIII, 4, 82--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rajkumar, R. 1991. Synchronization in Real-Time Systems: A Priority Inheritance Approach. Kluwer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Rivas, M. A. and Harbour, M. G. 2001a. Extending Ada's real-time systems Annex with the POSIX scheduling services. ACM SIGAda Ada Letters XXI, 1, 20--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Rivas, M. A. and Harbour, M. G. 2001b. MaRTE OS: An Ada kernel for real-time embedded applications. In Proceedings of the 6th Ada-Europe International Conference on Reliable Software Technologies. Lecture Notes in Computer Science, vol. 2043. Springer-Verlag, Berlin, Germany, 305--316. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Rivas, M. A. and Harbour, M. G. 2003. Evaluation of new POSIX real-time operating systems services for small embedded platforms. In Proceedings of the 15th Euromicro Conference on Real-Time Systems. IEEE Computer Society Press, Los Alamitos, CA, 161--168.Google ScholarGoogle Scholar
  27. Santos, O. and Wellings, A. J. 2008a. Run time detection of blocking time violations in real-time systems. In Proceedings of the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications. IEEE Computer Society Press, Los Alamitos, CA, 347--356. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Santos, O. M. and Wellings, A. J. 2008b. Blocking time monitoring in the Real-Time Specification for Java. In Proceedings of the 6th International Workshop on Java Technologies for Real-Time and Embedded Systems. ACM, New York, 135--143. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Stewart, D. B. and Khosla, P. K. 1997. Mechanisms for detecting and handling timing errors. Comm. ACM 40, 1, 87--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tres, C., Becker, L. B., and Nett, E. 2007. Real-time tasks scheduling with value control to predict timing faults during overload. In Proceedings of the 10th IEEE Symposium on Object and Component-Oriented Real-Time Distributed Computing. IEEE Computer Society Press, Los Alamitos, CA, 354--358. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Wilhelm, R., Engblom, J., Ermedahl, A., Holsti, N., Thesing, S., Whalley, D. B., Bernat, G., Ferdinand, C., Heckmann, R., Mitra, T., Mueller, F., Puaut, I., Puschner, P. P., Staschulat, J., and Stenström, P 2008. The worst-case execution-time problem—overview of methods and survey of tools. ACM Trans. Embedd. Comput. Syst. 7, 3, 1--53. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Measuring and policing blocking times in real-time systems

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!