Process-Aware Interrupt Scheduling and Accounting

In most operating systems, the handling of interrupts is typically performed within the address space of the kernel. Moreover, interrupt handlers are invoked asynchronously during the execution of arbitrary processes. Unfortunately, this allows for a process's time quantum to be consumed by arbitrary interrupt handling. To avoid significant impact to process execution and also to respond quickly enough to interrupts, interrupt servicing is usually split into two parts: a "top" and "bottom" half. The top half executes at interrupt time and is meant to be short enough to complete all necessary actions at the time of the interrupt. In contrast, the bottom half can be deferred to a more suitable point in time to complete servicing of a prior interrupt. Systems such as Linux may defer bottom half handling to a schedulable thread that may be arbitrarily delayed until there are no other processes to execute. A better approach would be to schedule bottom halves in accordance with the priorities of processes that are affected by their execution. Likewise, bottom half processing should be charged to the CPU-time usage of the affected process, or processes, where possible, to ensure fairer and more predictable resource management. This paper describes some of our approaches, both algorithmically and in terms of implementation on a Linux system, to combine interrupt scheduling and accountability. We show significant improvements in predictability of a Linux system by modifying the kernel to more accurately account for interrupt servicing costs and more precisely control when and to what extent interrupts can be serviced

[1]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[2]  John Regehr,et al.  Evolving real-time systems using hierarchical scheduling and concurrency analysis , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[3]  Giorgio C. Buttazzo,et al.  Non-preemptive interrupt scheduling for safe reuse of legacy drivers in real-time systems , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[4]  Ragunathan Rajkumar,et al.  Linux/RK: A Portable Resource Kernel in Linux , 2005 .

[5]  B. Srinivasan,et al.  A firm real-time system implementation using commercial off-the-shelf hardware and free software , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[6]  Jason Nieh,et al.  SWAP: A Scheduler with Automatic Process Dependency Detection , 2004, NSDI.

[7]  Butler W. Lampson,et al.  Experience with processes and monitors in Mesa , 1980, CACM.

[8]  Richard West,et al.  Application-Specific Service Technologies for Commodity Operating Systems in Real-Time Environments , 2006, IEEE Real Time Technology and Applications Symposium.

[9]  Hermann Härtig,et al.  Cost and benefit of separate address spaces in real-time operating systems , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[10]  Hideyuki Tokuda,et al.  Real-Time Mach: Towards a Predictable Real-Time System , 1990, USENIX MACH Symposium.

[11]  Raymond Keith Clark,et al.  Scheduling dependent real-time activities , 1990 .

[12]  Steve R. Kleiman,et al.  Interrupts as threads , 1995, OPSR.

[13]  Andy Oram,et al.  Understanding the Linux Kernel, Second Edition , 2002 .

[14]  John Regehr,et al.  Eliminating Interrupt Overload in Embedded Systems , 2004 .

[15]  Dionisio de Niz,et al.  Predictable Interrupt Management for Real Time Kernels over conventional PC Hardware , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[16]  Daniel Pierre Bovet,et al.  Understanding the Linux Kernel , 2000 .

[17]  Karim Yaghmour The Real-Time Application Interface , 2001 .

[18]  Dan Hildebrand,et al.  An Architectural Overview of QNX , 1992, USENIX Workshop on Microkernels and Other Kernel Architectures.

[19]  Kevin Jeffay,et al.  Accounting for interrupt handling costs in dynamic priority task systems , 1993, 1993 Proceedings Real-Time Systems Symposium.

[20]  Richard West,et al.  'QoS Safe' kernel extensions for real-time resource management , 2002, Proceedings 14th Euromicro Conference on Real-Time Systems. Euromicro RTS 2002.