On Improving Real-Time Interrupt Latencies of Hybrid Operating Systems with Two-Level Hardware Interrupts

In this paper, we propose to implement hybrid operating systems based on two-level hardware interrupts. We analyze and model the worst-case real-time interrupt latency for RTAI and identify the key component for its optimization. Then, we propose our methodology to implement hybrid operating systems with two-level hardware interrupts by combining the real-time kernel and the time sharing OS (Operating System) kernel. Based on the methodology, we discuss the important issues for the implementation. Finally, we implement a hybrid system called RTLinux-THIN (Real-Time LINUX with Two-level Hardware INterrupts) on the ARM architecture by combining ARM Linux kernel 2.6.9 and μC/OS-II. We conduct experiments on a set of real application programs including mplayer, Bonnie, and iperf, and compare the interrupt latency and interrupt task distributions for RTLinux-THIN (with and without cache locking), RTAI, Linux, and Linux with RT patch on a hardware platform based on Intel PXA270 processor. The results show that our scheme not only provides an easy method for implementing hybrid systems but also achieves the performance improvement for both the time sharing and real-time subsystems.

[1]  Richard West,et al.  Mutable Protection Domains: Towards a Component-Based System for Dependable and Predictable Computing , 2007, RTSS 2007.

[2]  Giuseppe Lipari,et al.  A hierarchical scheduling model for component-based real-time systems , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[3]  Z. Deng,et al.  A scheme for scheduling hard real-time applications in open system environment , 1997, Proceedings Ninth Euromicro Workshop on Real Time Systems.

[4]  John Regehr,et al.  Preventing interrupt overload , 2005, LCTES.

[5]  David Seal,et al.  ARM Architecture Reference Manual , 2001 .

[6]  Björn Lisper,et al.  Data caches in multitasking hard real-time systems , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[7]  M. Campoy,et al.  Static Use of Locking Caches in Multitask Preemptive Real-Time Systems , 2001 .

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

[9]  Parameswaran Ramanathan,et al.  HIP: hybrid interrupt-polling for the network interface , 2001, OPSR.

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

[11]  Yuting Zhang,et al.  Process-Aware Interrupt Scheduling and Accounting , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[12]  K. K. Ramakrishnan,et al.  Eliminating receive livelock in an interrupt-driven kernel , 1996, TOCS.

[13]  David B. Stewart,et al.  A Tool for Analyzing and Fine Tuning the Real-Time Properties of an Embedded System , 2003, IEEE Trans. Software Eng..

[14]  Robert A. Walker,et al.  Interrupt Triggered Software Prefetching for Embedded CPU Instruction Cache , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[15]  Kyu Ho Park,et al.  Delayed locking technique for improving real-time performance of embedded Linux by prediction of timer interrupt , 2005, 11th IEEE Real Time and Embedded Technology and Applications Symposium.

[16]  Jian Yang,et al.  A Linux kernel with fixed interrupt latency for embedded real-time system , 2005, Second International Conference on Embedded Software and Systems (ICESS'05).

[17]  I. Puaut,et al.  Towards a Predictable and High Performance Use of Instruction Caches in Hard Real-Time Systems , 2003 .

[18]  Hermann Härtig,et al.  RTLinux with Address Spaces , 2001 .

[19]  Aloysius K. Mok,et al.  A model of hierarchical real-time virtual resources , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[20]  Alan Burns,et al.  Analysis of Hierarchical EDF Pre-emptive Scheduling , 2007, RTSS 2007.

[21]  Scott A. Brandt,et al.  Better real-time response for time-share scheduling , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[22]  Sang Hyuk Son,et al.  I/O-Aware Deadline Miss Ratio Management in Real-Time Embedded Databases , 2007, RTSS 2007.

[23]  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..

[24]  Meng Wang,et al.  Implementing Hybrid Operating Systems with Two-Level Hardware Interrupts , 2007, 28th IEEE International Real-Time Systems Symposium (RTSS 2007).

[25]  Jane W.-S. Liu,et al.  An Open Environment for Real-Time Applications , 1998, Real-Time Systems.

[26]  F. Rodriguez,et al.  Static use of locking caches vs. dynamic use of locking caches for real-time systems , 2003, CCECE 2003 - Canadian Conference on Electrical and Computer Engineering. Toward a Caring and Humane Technology (Cat. No.03CH37436).

[27]  Martin Schoeberl,et al.  Modeling the Function Cache for Worst-Case Execution Time Analysis , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[28]  Kwei-Jay Lin,et al.  Implementing a general real-time scheduling framework in the RED-Linux real-time kernel , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[29]  Alan Burns,et al.  Resource Sharing in Hierarchical Fixed Priority Pre-Emptive Systems , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[30]  Sanjoy K. Baruah,et al.  Efficient scheduling of real-time multi-task applications in dynamic systems , 2000, Proceedings Sixth IEEE Real-Time Technology and Applications Symposium. RTAS 2000.

[31]  Jean J. Labrosse,et al.  MicroC/OS-II: The Real Time Kernel , 1998 .

[32]  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).

[33]  Richard West,et al.  Hijack: Taking Control of COTS Systems for Real-Time User-Level Services , 2007, 13th IEEE Real Time and Embedded Technology and Applications Symposium (RTAS'07).

[34]  Richard West,et al.  Predictable Interrupt Management and Scheduling in the Composite Component-Based System , 2008, 2008 Real-Time Systems Symposium.

[35]  Aloysius K. Mok,et al.  Resource partition for real-time systems , 2001, Proceedings Seventh IEEE Real-Time Technology and Applications Symposium.

[36]  Insup Lee,et al.  Periodic resource model for compositional real-time guarantees , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[37]  John Regehr,et al.  HLS: a framework for composing soft real-time schedulers , 2001, Proceedings 22nd IEEE Real-Time Systems Symposium (RTSS 2001) (Cat. No.01PR1420).

[38]  A. Marti Campoy,et al.  DYNAMIC USE OF LOCKING CACHES IN MULTITASK, PREEMPTIVE REAL-TIME SYSTEMS , 2002 .

[39]  Isabelle Puaut,et al.  Low-complexity algorithms for static cache locking in multitasking hard real-time systems , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[40]  Alan Burns,et al.  An extendible approach for analyzing fixed priority hard real-time tasks , 1994, Real-Time Systems.

[41]  Gerhard Fohler,et al.  Handling interrupts with static scheduling in an automotive vehicle control system , 1998, Proceedings Fifth International Conference on Real-Time Computing Systems and Applications (Cat. No.98EX236).

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

[43]  Hermann Kopetz,et al.  The time-triggered model of computation , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[44]  Jonathan Walpole,et al.  A measurement-based analysis of the real-time performance of linux , 2002, Proceedings. Eighth IEEE Real-Time and Embedded Technology and Applications Symposium.

[45]  Tei-Wei Kuo,et al.  An open real-time environment for parallel and distributed systems , 2000, Proceedings 20th IEEE International Conference on Distributed Computing Systems.

[46]  Victor Yodaiken,et al.  A Real-Time Linux , 2000 .

[47]  P. Mantegazza,et al.  RTAI: Real Time Application Interface , 2000 .

[48]  Jane W.-S. Liu,et al.  Scheduling real-time applications in an open environment , 1997, Proceedings Real-Time Systems Symposium.

[49]  Giuseppe Lipari,et al.  A Framework for Composing Real-Time Schedulers , 2003, Electron. Notes Theor. Comput. Sci..

[50]  Tei-Wei Kuo,et al.  A fixed-priority-driven open environment for real-time applications , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[51]  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).