Execution time limitation of interrupt handlers in a Java operating system

Device drivers are a very critical part of every operating system. They often contain code that is executed in interrupt handlers. During the execution of interrupt handlers, the processing of some other interrupts is usually disabled. Thus errors in that code can compromise the whole system.This paper describes an approach to ensure that an interrupt handler is not allowed to use more than a specified amount of time. Our approach is based on a Java operating system and consists of a combination of verification at compilation time and run-time checks.

[1]  Jakob Engblom,et al.  Modeling complex flows for worst-case execution time analysis , 2000, Proceedings 21st IEEE Real-Time Systems Symposium.

[2]  Michael Golm,et al.  The JX Operating System , 2002, USENIX Annual Technical Conference, General Track.

[3]  Johann Blieberger Discrete Loops and Worst Case Performance , 1994, Comput. Lang..

[4]  Guillem Bernat,et al.  WCET analysis of reusable portable code , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[5]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[6]  Frank Bellosa,et al.  Beyond address spaces-flexibility, performance, protection, and resource management in the type-safe JX operating system , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[7]  Junfeng Yang,et al.  An empirical study of operating systems errors , 2001, SOSP.

[8]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[9]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .