An Architecture for Declarative Real-Time Scheduling on Linux
2020, 2020 IEEE 23rd International Symposium on Real-Time Distributed Computing (ISORC)
Abstract
This paper proposes a novel framework and programming model for real-time applications supporting a declarative access to real-time CPU scheduling features that are available on an operating system. The core idea is to let applications declare their temporal characteristics and/or requirements on the CPU allocation, where, for example, some of them may require real-time POSIX priorities, whilst others might need resource reservations through SCHED_DEADLINE. The framework can properly handle such a set of heterogeneous requirements configuring an underlying multi-core platform so to exploit the various scheduling disciplines that are available in the kernel, matching applications requirements. The framework is realized as a modular architecture in which different plugins handle independently certain real-time scheduling features within the underlying kernel, easing the customization of its behavior to support other schedulers or operating systems by adding further plugins.
References (30)
- J. Kiszka, "Towards Linux as a real-time hypervisor," in Proceedings of the 11th Real-Time Linux Workshop. Citeseer, 2009, pp. 215-224.
- K. Obenland, "The use of POSIX in real-time systems, assessing its effectiveness and performance," 01 2000.
- S. Rostedt and D. V. Hart, "Internals of the RT patch," in Proceedings of the Linux symposium, vol. 2, 2007, pp. 161-172.
- F. Reghenzani, G. Massari, and W. Fornaciari, "The real-time Linux kernel: A survey on Preempt_RT," ACM Computing Surveys, vol. 52, pp. 1-36, 02 2019.
- J. Lelli, C. Scordino, L. Abeni, and D. Faggioli, "Deadline scheduling in the Linux kernel," Software: Practice and Experience, vol. 46, no. 6, pp. 821-839, 2016. [Online]. Available: https: //onlinelibrary.wiley.com/doi/abs/10.1002/spe.2335
- L. Abeni and G. Buttazzo, "Integrating multimedia applications in hard real-time systems," in Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No. 98CB36279). IEEE, 1998, pp. 4-13.
- Ayers and B. V. Yodaiken, "Introducing real-time Linux," Linux J., vol. 1997, no. 34es, p. 5-es, Feb. 1997.
- L. Dozio and P. Mantegazza, "Real time distributed control systems using RTAI," in Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2003., May 2003, pp. 11-18.
- P. Gerum, "Xenomai-implementing a RTOS emulation framework on GNU/Linux."
- S. Han and H.-W. Jin, "Kernel-level arinc 653 partitioning for linux," Proceedings of the ACM Symposium on Applied Computing, 03 2012.
- ARINC, "Avionics application software standard interface part 1 - required services," 2015.
- B. Srinivasan, S. Pather, R. Hill, F. Ansari, and D. Niehaus, "A firm real- time system implementation using commercial off-the-shelf hardware and free software," in Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245), June 1998, pp. 112-119.
- S. Brandt, G. Nutt, T. Berk, and J. Mankovich, "A dynamic quality of service middleware agent for mediating application resource us- age," in Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279), Dec 1998, pp. 307-317.
- R. Rajkumar, C. Lee, J. Lehoczky, and D. Siewiorek, "A resource allo- cation model for qos management," in Proceedings Real-Time Systems Symposium, Dec 1997, pp. 298-307.
- S. Ghosh, J. Hansen, R. Rajkumar, and J. Lehoczky, "Integrated resource management and scheduling with multi-resource constraints," in 25th IEEE International Real-Time Systems Symposium, Dec 2004, pp. 12- 22.
- J. M. Calandrino, H. Leontyev, A. Block, U. C. Devi, and J. H. Anderson, "LITMUS RT : A testbed for empirically comparing real-time multiprocessor schedulers," in 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06), Dec 2006, pp. 111-126.
- RealtimeKit (RTKit) GitHub Repository. Accessed January 10, 2020. [Online]. Available: https://github.com/heftig/rtkit
- M. Aldea, G. Bernat, I. Broster, A. Burns, R. Dobrin, J. M. Drake, G. Fohler, P. Gai, M. G. Harbour, G. Guidi, J. J. Gutierrez, T. Lennvall, G. Lipari, J. M. Martinez, J. L. Medina, J. C. Palencia, and M. Trimarchi, "FSF: A real-time scheduling architecture framework," in 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06), April 2006, pp. 113-124.
- P. Gai, L. Abeni, M. Giorgi, and G. Buttazzo, "A new kernel approach for modular real-time systems development," in Proceedings 13th Eu- romicro Conference on Real-Time Systems, June 2001, pp. 199-206.
- M. Aldea-Rivas and M. Harbour, "MaRTE OS: An Ada kernel for real- time embedded applications," vol. 2043, 05 2001, pp. 305-316.
- M. Sojka, P. Píša, D. Faggioli, T. Cucinotta, F. Checconi, Z. Hanzálek, and G. Lipari, "Modular software architecture for flexible reservation mechanisms on heterogeneous resources," Journal of Systems Architecture, vol. 57, no. 4, pp. 366 -382, 2011. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1383762111000282
- L. Palopoli, T. Cucinotta, L. Marzario, and G. Lipari, "Aquosa-adaptive quality of service architecture," Software: Practice and Experience, vol. 39, no. 1, pp. 1-31, 2009. [Online]. Available: https://onlinelibrary. wiley.com/doi/abs/10.1002/spe.883
- M. Sojka, M. Molnar, and Z. Hanzalek, "Experiments for real-time communication contracts in ieee 802.11e edca networks," in 2008 IEEE International Workshop on Factory Communication Systems, May 2008, pp. 89-92.
- D. Sangorrín, M. González Harbour, H. Pérez, and J. J. Gutiérrez, "Man- aging transactions in flexible distributed real-time systems," in Reliable Software Technologiey -Ada-Europe 2010, J. Real and T. Vardanega, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010, pp. 251- 264.
- M. Åsberg, T. Nolte, S. Kato, and R. Rajkumar, "Exsched: An external cpu scheduler framework for real-time systems," in 2012 IEEE Interna- tional Conference on Embedded and Real-Time Computing Systems and Applications, Aug 2012, pp. 240-249.
- T. Cucinotta, D. Giani, D. Faggioli, and F. Checconi, "Effective real-time computing on Linux," in 12th Real-Time Linux Workshop, 2010.
- G. Buttazzo, Hard real-time computing systems: predictable scheduling algorithms and applications. Springer Science & Business Media, 2011, vol. 24.
- D. Faggioli, F. Checconi, M. Trimarchi, and C. Scordino, "An EDF scheduling class for the Linux kernel," in 11th Real-Time Linux Work- shop, 2009.
- D. Casini, A. Biondi, and G. Buttazzo, "Handling transients of dynamic real-time workload under EDF scheduling," IEEE Transactions on Computers, vol. 68, no. 6, pp. 820-835, 2018.
- J. Corbet. (2019, July) Completing the pidfd API. Accessed January 10, 2020. [Online]. Available: https://lwn.net/Articles/794707