An efficient implementation of the BandWidth Inheritance protocol for handling hard and soft real-time applications in the Linux kernel

This paper presents an improvement of the Bandwidth Inheritance Protocol (BWI), the natural extension of the well-known Priority Inheritance Protocol (PIP) to resource reservation schedulers. The modified protocol allows for a better management of nested critical section, removes unneeded overheads in the management of task block and unblock events, and introduces a run-time deadlock detection mechanism at no cost. Also, an implementation of the new protocol on the Linux kernel is presented, along with experimental results gathered while running some synthetic application load. Presented results prove the effectiveness of the proposed solution in reducing latencies due to concurrent use of resources and in improving temporal isolation among groups of independent tasks. Also, we show that the introduced overhead is low and negligible for the applications of interest.

[1]  Theodore P. Baker,et al.  Stack-based scheduling of realtime processes , 1991, Real-Time Systems.

[2]  Stefan Savage,et al.  Processor capacity reserves: an abstraction for managing processor usage , 1993, Proceedings of IEEE 4th Workshop on Workstation Operating Systems. WWOS-III.

[3]  Journal of the Association for Computing Machinery , 1961, Nature.

[4]  Giuseppe Lipari,et al.  Task synchronization in reservation-based real-time systems , 2004, IEEE Transactions on Computers.

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

[6]  Theodore P. Baker,et al.  Aperiodic servers in a deadline scheduling environment , 2005, Real-Time Systems.

[7]  Ulrich Drepper,et al.  The Native POSIX Thread Library for Linux , 2002 .

[8]  Tommaso Cucinotta,et al.  AQuoSA—adaptive quality of service architecture , 2009, Softw. Pract. Exp..

[9]  Giorgio C. Buttazzo,et al.  Integrating multimedia applications in hard real-time systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[10]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[11]  Sanjoy K. Baruah,et al.  Proportionate progress: A notion of fairness in resource allocation , 1993, Algorithmica.

[12]  Marco Caccamo,et al.  Aperiodic servers with resource constraints , 2001, Proceedings 22nd IEEE Real-Time Systems Symposium (RTSS 2001) (Cat. No.01PR1420).

[13]  Tommaso Cucinotta Access Control for Adaptive Reservations on Multi-User Systems , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[14]  Arie Shoshani,et al.  System Deadlocks , 1971, CSUR.

[15]  Sanjoy K. Baruah,et al.  Proportionate progress: a notion of fairness in resource allocation , 1993, STOC '93.

[16]  Tommaso Cucinotta,et al.  AQuoSA—adaptive quality of service architecture , 2009 .

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

[18]  Hermann Härtig,et al.  Fast component interaction for real-time systems , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[19]  T. J. Watson,et al.  Fuss , Futexes and Furwocks : Fast Userlevel Locking in Linux Hubertus Franke IBM , 2005 .

[20]  Shuichi Oikawa,et al.  Resource kernels: a resource-centric approach to real-time and multimedia systems , 2001, Electronic Imaging.