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.
- Avizienis, A., Laprie, J.-C., and Randell, B. 2001. Fundamental concepts of dependability. Tech. rep. CS-TR-739, Newcastle University.Google Scholar
- Barnes, J. 2005. Rationale for Ada 2005: 4 Tasking and real-time. Ada User J. 26, 3, 1--17.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- Burns, A. and Wellings, A. 1993. Measuring, monitoring and enforcing CPU execution time usage. ACM Ada Letters XIII, 2, 54--64. Google Scholar
Digital Library
- Burns, A. and Wellings, A. J. 2001. Real-Time Systems and Their Programming Languages. Addison-Wesley, Reading, MA. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- GCJ. 2007. The GNU Compiler for the Java#8482; Programming Language. http://gcc.gnu.org/java/.Google Scholar
- 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 Scholar
Digital Library
- jRate. 2008. Java Real-Time Extension homepage. http://jrate.sourceforge.net/.Google Scholar
- Lampson, B. W. and Redell, D. D. 1980. Experience with processes and monitors in Mesa. Comm. ACM 23, 2, 105--117. Google Scholar
Digital Library
- 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 Scholar
- Lee, P. A. and Anderson, T. 1990. Fault Tolerance: Principles and Practice 2nd Ed. Springer-Verlag, Berlin, Germany. Google Scholar
Digital Library
- Liu, J. W. S. 2000. Real-Time Systems. Prentice-Hall, New York.Google Scholar
- 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 Scholar
Digital Library
- MaRTE OS. 2008. MaRTE OS homepage. http://marte.unican.es/.Google Scholar
- 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 Scholar
Digital Library
- Nett, E., Gergeleit, M., and Mock, M. 2001. Enhancing O-O middleware to become time-aware. Real-Time Syst. 20, 2, 221--228. Google Scholar
Digital Library
- 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 Scholar
- POSIX Standard. 2004. Portable Operating System Interface (POSIX)—The Open Group Technical Standard Base Specifications, Issue 6. IEEE Std 1003.1.Google Scholar
- Puente, J. A. and Zamorano, J. 2003. Execution-time clocks and Ravenscar kernels. ACM SIGAda Ada Letters XXIII, 4, 82--86. Google Scholar
Digital Library
- Rajkumar, R. 1991. Synchronization in Real-Time Systems: A Priority Inheritance Approach. Kluwer. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Stewart, D. B. and Khosla, P. K. 1997. Mechanisms for detecting and handling timing errors. Comm. ACM 40, 1, 87--93. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Measuring and policing blocking times in real-time systems
Recommendations
Blocking time monitoring in the real-time specification for Java
JTRES '08: Proceedings of the 6th international workshop on Java technologies for real-time and embedded systemsBlocking for resource accesses can have a crucial impact on a real-time system's ability to meet its deadlines. In priority-based systems, uncontrolled blocking can lead to potentially unbounded priority inversion. To counteract this, basic priority ...
Run Time Detection of Blocking Time Violations in Real-Time Systems
RTCSA '08: Proceedings of the 2008 14th IEEE International Conference on Embedded and Real-Time Computing Systems and ApplicationsThe run-time support mechanism usually deployed for monitoring the timing requirements of real-time systems is based on deadline monitoring, i.e., the system calls specific application code whenever a deadline is violated. However, from a fault-...
A Compile-Time Optimization Method for WCET Reduction in Real-Time Embedded Systems through Block Formation
Compile-time optimizations play an important role in the efficient design of real-time embedded systems. Usually, compile-time optimizations are designed to reduce average-case execution time (ACET). While ACET is a main concern in high-performance ...






Comments