Abstract
In this work, we provide an experimental comparison between Global-EDF and Partitioned-EDF, considering the run-time overhead of a real-time operating system (RTOS). Recent works have confirmed that OS implementation aspects, such as the choice of scheduling data structures and interrupt handling mechanisms, impact real-time schedulability as much as scheduling theoretic aspects. However, these studies used real-time patches applied into a general-purpose OS. By measuring the run-time overhead of an RTOS designed from scratch, we show how close the schedulability ratio of task sets is to the theoretical hard real-time schedulability tests. Moreover, we show how a well-designed object-oriented RTOS allows code reuse of scheduling components (e.g., thread, scheduling criteria, and schedulers) and easy real-time scheduling extensions. We compare our RTOS to a real-time patch for Linux in terms of the task set schedulability ratio of several generated task sets. In some cases, Global-EDF considering the overhead of the RTOS is superior to Partitioned-EDF considering the overhead of the patched Linux, which clearly shows how different OSs impact hard real-time schedulers.
Similar content being viewed by others
Notes
In this paper we interchangeably use the terms processor and core.
A task that has a utilization higher than 0.5 is considered a heavy task.
We consider the original parameters Δev (delay until an interrupt service routine starts execution) and Δcid (loss of cache affinity due to an interrupt service routine) as negligible.
An EPOS periodic thread is conceptually implemented as a real-time periodic task.
A trait class is a template class that associates information of a component at compile time.
We used the open-source implementation of the eight G-EDF schedulability tests available at http://www.cs.unc.edu/~bbb/diss/. We changed the code to allow the tests to be executed in parallel in a cluster and extended it to support also P-EDF partitioning heuristics and EDF uniprocessor test. The new code is also available online at http://epos.lisha.ufsc.br.
From now on, whenever we refer to worst-case is the observed worst-case from the experiments.
References
Abeni L, Buttazzo G (2004) Resource reservation in dynamic real-time systems. Real-Time Syst 27(2):123–167
Altmeyer S, Davis RI, Maiza C (2012) Improved cache related pre-emption delay aware response time analysis for fixed priority pre-emptive systems. Real-Time Syst 1–28
AMD (2010) Amd64 architecture programmer’s manual, volume 2: System programming. Publication No. 24593. Revision: 3.17, June 2010
Anderson JH, Block A (2000) Early-release fair scheduling. In: Proceedings of the 12th Euromicro conference on real-time systems, pp 35–43
Anderson JH, Block A, Srinivasan A (2003) Quick-release fair scheduling. In: Proceedings of the 24th IEEE international real-time systems symposium (RTSS ’03). IEEE Comput Soc, Washington, p 130
Anderson JH, Bud V, Devi UC (2005) An edf-based scheduling algorithm for multiprocessor soft real-time systems. In: Proceedings of the 17th Euromicro conference on real-time systems (ECRTS ’05). IEEE Comput Soc, Washington, pp 199–208
Anderson JH, Calandrino JM, Devi UC (2006) Real-time scheduling on multicore platforms. In: RTAS ’06: proceedings of the 12th IEEE real-time and embedded technology and applications symposium, pp 179–190
Aparicio L, Segarra J, Rodríguez C, Viñals V (2011) Improving the wcet computation in the presence of a lockable instruction cache in multitasking real-time systems. J Syst Archit 57(7):695–706. Special Issue on Worst-Case Execution-Time Analysis
Åsberg M, Nolte T, Kato S, Rajkumar R (2012) Exsched: an external cpu scheduler framework for real-time systems. In: 18th IEEE international conference on embedded and real-time computing systems and applications (RTCSA’12)
Azimi R, Stumm M, Wisniewski R (2005) Online performance analysis by statistical sampling of microprocessor performance counters. In: Proceedings of the 19th annual international conference on supercomputing (ICS ’05). ACM, New York, pp 101–110
Azimi R, Tam D, Soares L, Stumm M (2009) Enhancing operating system support for multicore processors by using hardware performance monitoring. Oper Syst Rev 43:56–65
Baker TP (2003) Multiprocessor edf and deadline monotonic schedulability analysis. In: Proceedings of the 24th IEEE international real-time systems symposium (RTSS ’03). IEEE Comput Soc, Washington, p 120
Baker TP (2005a) An analysis of edf schedulability on a multiprocessor. IEEE Trans Parallel Distrib Syst 16(8):760–768
Baker TP (2005b) A comparison of global and partitioned edf schedulability tests for multiprocessors. Tech rep. In: International conference on real-time and network systems
Baker TP, Baruah S (2009) An analysis of global edf schedulability for arbitrary-deadline sporadic task systems. Real-Time Syst 43(1):3–24
Baruah S (2007) Techniques for multiprocessor global schedulability analysis. In: Proceedings of the 28th IEEE international real-time systems symposium (RTSS ’07). IEEE Comput Soc, Washington, pp 119–128
Baruah S, Bonifaci V, Spaccamela AM, Stiller S (2009) Implementation of a speedup-optimal global edf schedulability test. In: Proceedings of the 2009 21st Euromicro conference on real-time systems (ECRTS ’09). IEEE Comput Soc, Washington, pp 259–268
Baruah SK, Cohen NK, Plaxton CG, Varvel DA (1996) Proportionate progress: a notion of fairness in resource allocation. Algorithmica 15:600–625
Bastoni A, Brandenburg BB, Anderson JH (2010a) Cache-related preemption and migration delays: empirical approximation and impact on schedulability. In: Proc sixth international workshop on operating systems platforms for embedded real-time applications, Brussels, Belgium
Bastoni A, Brandenburg BB, Anderson JH (2010b) An empirical comparison of global, partitioned, and clustered multiprocessor edf schedulers. In: Proceedings of the 2010 31st IEEE real-time systems symposium (RTSS ’10). IEEE Comput Soc, Washington, pp 14–24
Bastoni A, Brandenburg BB, Anderson JH (2011) Is semi-partitioned scheduling practical? In: Proceedings of the 2011 23rd Euromicro conference on real-time systems (ECRTS ’11). IEEE Comput Soc, Washington, pp 125–135
Bertogna M, Baruah S (2011) Tests for global edf schedulability analysis. J Syst Archit 57(5):487–497
Bertogna M, Cirinei M (2007) Response-time analysis for globally scheduled symmetric multiprocessor platforms. In: Proceedings of the 28th IEEE international real-time systems symposium (RTSS ’07). IEEE Comput Soc, Washington, pp 149–160
Bertogna M, Cirinei M, Lipari G (2005) Improved schedulability analysis of edf on multiprocessor platforms. In: Proceedings of the 17th Euromicro conference on real-time systems (ECRTS ’05). IEEE Comput Soc, Washington, pp 209–218
Bletsas K, Andersson B (2009) Preemption-light multiprocessor scheduling of sporadic tasks with high utilisation bound. In: Proceedings of the 2009 30th IEEE real-time systems symposium (RTSS ’09). IEEE Comput Soc, Washington, pp 447–456
Brandenburg BB (2011) Scheduling and locking in multiprocessor real-time operating systems. PhD thesis, The University of North Carolina at Chapel Hill
Brandenburg BB, Anderson JH (2007) Feather-trace: a light-weight event tracing toolkit. In: Proceedings of the third international workshop on operating systems platforms for embedded real-time applications (OSPERT’07), pp 61–70
Brandenburg BB, Anderson JH (2009) On the implementation of global real-time schedulers. In: RTSS ’09: proceedings of the 2009 30th IEEE real-time systems symposium. IEEE Comput Soc, Washington, pp 214–224
Brandenburg BB, Calandrino JM, Anderson JH (2008) On the scalability of real-time scheduling algorithms on multicore platforms: a case study. In: Proceedings of the 2008 real-time systems symposium (RTSS ’08). IEEE Comput Soc, Washington, pp 157–169
Brandenburg BB, Leontyev H, Anderson JH (2011) An overview of interrupt accounting techniques for multiprocessor real-time systems. J Syst Archit 57(6):638–654
Burns A, Davis R, Wang P, Zhang F (2012) Partitioned edf scheduling for multiprocessors using a C=D task splitting scheme. Real-Time Syst 48(1):3–33
Calandrino JM, Anderson JH (2008) Cache-aware real-time scheduling on multicore platforms: heuristics and a case study. In: ECRTS ’08: proceedings of the 2008 Euromicro conference on real-time systems. IEEE Comput Soc, Washington, pp 299–308
Calandrino JM, Leontyev H, Block A, Devi UC, Anderson JH (2006) Litmusrt: a testbed for empirically comparing real-time multiprocessor schedulers. In: Proceedings of the 27th IEEE international real-time systems symposium (RTSS ’06). IEEE Comput Soc, Washington, pp 111–126
Carpenter J, Funk S, Holman P, Srinivasan A, Anderson J, Baruah S (2004) A categorization of real-time multiprocessor scheduling problems and algorithms. In: Handbook on scheduling algorithms, methods, and models. Chapman Hall/CRC, Boca Raton
Cho H, Ravindran B, Jensen ED (2006) An optimal real-time scheduling algorithm for multiprocessors. In: RTSS ’06. IEEE Press, New York, pp 101–110
Cullmann C, Ferdinand C, Gebhard G, Grund D, Maiza C, Reineke J, Triquet B, Wegener S, Wilhelm R (2010) Predictability considerations in the design of multi-core embedded systems. Ing Automob 807:36–42
Czarnecki K, Eisenecker UW (2000) Generative programming: methods, tools, and applications. ACM/Addison-Wesley, New York
David FM, Carlyle JC, Campbell RH (2007) Context switch overheads for Linux on arm platforms. In: Proceedings of the 2007 workshop on experimental computer science (ExpCS ’07). ACM, New York
Dijkstra EW (1968) Cooperating sequential processes. In: Genuys F (ed) Programming languages: NATO Advanced Study Institute. Academic Press, New York, pp 43–112
Dongarra J, London K, Moore S, Mucci P, Terpstra D, You H, Zhou M (2003) Experiences and lessons learned with a portable interface to hardware performance counters. In: Proceedings of the 17th international symposium on parallel and distributed processing (IPDPS ’03). IEEE Comput Soc, Washington, p 289.2
EPOS (2012) Epos website. URL http://epos.lisha.ufsc.br
Faggioli D, Checconi F, Trimarchi M, Scordino C (2009) An EDF scheduling class for the Linux kernel. In: Proceedings of the eleventh real-time Linux workshop, Dresden, Germany
Fröhlich AA (2001) Application-oriented operating systems. GMD research series, vol 17. GMD—Forschungszentrum Informationstechnik, Sankt Augustin
Fröhlich AA (2011) A comprehensive approach to power management in embedded systems. Int J Distrib Sens Netw 2011(1):19
Fröhlich AA, Gracioli G, Santos JF (2011) Periodic timers revisited: the real-time embedded system perspective. Comput Electr Eng 37(3):365–375
Garey MR, Johnson DS (1990) Computers and intractability; a guide to the theory of NP-completeness. Freeman, New York
Goossens J, Funk S, Baruah S (2003) Priority-driven scheduling of periodic task systems on multiprocessors. Real-Time Syst 25(2–3):187–205
Gracioli G, Fröhlich AA (2011) An embedded operating system API for monitoring hardware events in multicore processors. In: Workshop on hardware-support for parallel program correctness—IEEE Micro 2011, Porto Alegre, Brazil
Guan N, Stigge M, Yi W, Yu G (2009) Cache-aware scheduling and analysis for multicores. In: EMSOFT ’09. ACM, New York, pp 245–254
Hardy D, Puaut I (2009) Estimation of cache related migration delays for multi-core processors with shared instruction caches. In: George L, Chetto M, Sjodin M (eds) 17th international conference on real-time and network systems, Paris, France, pp 45–54
Hennessy JL, Patterson DA (2006) Computer architecture: a quantitative approach, 4th edn. Morgan Kaufmann, San Mateo
Intel Corporation (2009) An introduction to the Intel quickpath interconnect. Document Number: 320412-001US, January 2009
Intel Corporation (2011) Intel® 64 and IA-32 architectures software developer’s manual. 253668-037US
Intel Corporation (2012) Intel® 64 and IA-32 architectures optimization reference manual. 248966-026
Johnson D (1973) Near-optimal bin packing algorithms. PhD thesis
Kato S (2012) AIRS website. URL http://www.ertl.jp/~shinpei/airs/
Kato S, Yamasaki N (2007) Real-time scheduling with task splitting on multiprocessors. In: Proceedings of the 13th IEEE international conference on embedded and real-time computing systems and applications (RTCSA ’07). IEEE Comput Soc, Washington, pp 441–450
Kato S, Yamasaki N (2008) Portioned edf-based scheduling on multiprocessors. In: Proceedings of the 8th ACM international conference on embedded software (EMSOFT ’08). ACM, New York, pp 139–148
Lelli J, Faggioli D, Cucinotta T, Lipari G (2012) An experimental comparison of different real-time schedulers on multicore systems. J Syst Softw 85(10):2405–2416
Leontyev H, Anderson JH (2007) Generalized tardiness bounds for global multiprocessor scheduling. In: RTSS ’07: proceedings of the 28th IEEE international real-time systems symposium. IEEE Comput Soc, Washington, pp 413–422
Levin G, Funk S, Sadowski C, Pye I, Brandt S (2010) Dp-fair: a simple model for understanding optimal multiprocessor scheduling. In: Proceedings of the 2010 22nd Euromicro conference on real-time systems (ECRTS ’10). IEEE Comput Soc, Washington, pp 3–13
Li C, Ding C, Shen K (2007) Quantifying the cost of context switch. In: Proceedings of the 2007 workshop on experimental computer science (ExpCS ’07). ACM, New York
Lin J, Lu Q, Ding X, Zhang Z, Zhang X, Sadayappan P (2008) Gaining insights into multicore cache partitioning: bridging the gap between simulation and real systems. In: International symposium on high performance computer architecture (HPCA ’08). IEEE Comput Soc, New York, pp 367–378
Liu CL, Layland JW (1973) Scheduling algorithms for multiprogramming in a hard-real-time environment. J ACM 20(1):46–61
Liu J (2000) Real-time systems, 1st edn. Prentice Hall PTR, Upper Saddle River
Ludwich MK, Fröhlich AA (2011) Abstracting hardware devices to embedded Java applications. In: IADIS applied computing 2011, Rio de Janeiro, Brazil, pp 371–378
Marcondes H, Cancian R, Stemmer M, Fröhlich AA (2009) On the design of flexible real-time schedulers for embedded systems. In: CSE ’09: proceedings of the 2009 international conference on computational science and engineering. IEEE Comput Soc, Washington, pp 382–387
Masrur A, Chakraborty S, Färber G (2010) Constant-time admission control for partitioned edf. In: Proceedings of the 2010 22nd Euromicro conference on real-time systems (ECRTS ’10). IEEE Comput Soc, Washington, pp 34–43
May J (2001) Mpx: software for multiplexing hardware performance counters in multithreaded programs. In: Proceedings of the 15th international parallel and distributed processing symposium, p 8
Mogul JC, Borg A (1991) The effect of context switches on cache performance. Oper Syst Rev 25:75–84 (Special Issue)
Mohan S, Caccamo M, Sha L, Pellizzoni R, Arundale G, Kegley R, de Niz D (2011) Using multicore architectures in cyber-physical systems. In: Workshop on developing dependable and secure automotive cyber-physical systems from components, Michigan, USA
Mollison M, Anderson JH (2012) Utilization-controlled task consolidation for power optimization in multi-core real-time systems. In: 18th IEEE international conference on embedded and real-time computing systems and applications (RTCSA), vol 1 (to appear)
Mück TR, Fröhlich AA (2011) HyRA: a software-defined radio architecture for wireless embedded systems. In: 10th international conference on networks, St. Maarten, The Netherlands Antilles, pp 246–251
Muralidhara SP, Kandemir M, Raghavan P (2010) Intra-application cache partitioning. In: IPDPS 10’: proceedings of the 25th IEEE international symposium on parallel distributed processing, pp 1–12
Negi HS, Mitra T, Roychoudhury A (2003) Accurate estimation of cache-related preemption delay. In: Proceedings of the 1st IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis (CODES+ISSS ’03). ACM, New York, pp 201–206
Oikawa S, Rajkumar R (1999) Portable rk: a portable resource kernel for guaranteed and enforced timing behavior. In: Proceedings of the fifth IEEE real-time technology and applications symposium, pp 111–120
Palopoli L, Cucinotta T, Marzario L, Lipari G (2009) Aquosa—adaptive quality of service architecture. Softw Pract Exp 39(1):1–31
Polpeta FV, Fröhlich AA (2004) Hardware mediators: a portability artifact for component-based systems. In: EUC, pp 271–280
SHARCNET (2012) Sharcnet cluster website. URL https://www.sharcnet.ca
Sprunt B (2002) Pentium 4 performance-monitoring features. IEEE MICRO 22(4):72–82
Srikantaiah S, Kandemir M, Irwin MJ (2008) Adaptive set pinning: managing shared caches in chip multiprocessors. In: Proceedings of the 13th international conference on architectural support for programming languages and operating systems (ASPLOS XIII). ACM, New York, pp 135–144
Srinivasan A, Holman P, Anderson JH, Baruah S (2003) The case for fair multiprocessor scheduling. In: IPDPS ’03: proceedings of the 17th international symposium on parallel and distributed processing. IEEE Comput Soc, Washington, p 114.1
Stärner J, Asplund L (2004) Measuring the cache interference cost in preemptive real-time systems. In: Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on languages, compilers, and tools for embedded systems (LCTES ’04). ACM, New York, pp 146–154
Staschulat J, Ernst R (2005) Scalable precision cache analysis for preemptive scheduling. In: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on languages, compilers, and tools for embedded systems (LCTES ’05). ACM, New York, pp 157–165
Suhendra V, Mitra T (2008) Exploring locking & partitioning for predictable shared caches on multi-cores. In: DAC ’08: proceedings of the 45th annual design automation conference. ACM, New York, pp 300–303
Tsafrir D (2007) The context-switch overhead inflicted by hardware interrupts (and the enigma of do-nothing loops). In: Proceedings of the 2007 workshop on experimental computer science (ExpCS ’07). ACM, New York
Vera X, Lisper B, Xue J (2003) Data cache locking for higher program predictability. ACM SIGMETRICS Perform Eval Rev 31(1):272–282
Wanner LF, Fröhlich AA (2008) Operating system support for wireless sensor networks. J Comput Sci 4(4):272–281
Wilhelm R, Engblom J, Ermedahl A, Holsti N, Thesing S, Whalley D, Bernat G, Ferdinand C, Heckmann R, Mitra T, Mueller F, Puaut I, Puschner P, Staschulat J, Stenström P (2008) The worst-case execution-time problem overview of methods and survey of tools. ACM Trans Embed Comput Syst 7(3):36
Yan J, Zhang W (2008) Wcet analysis for multi-core processors with shared l2 instruction caches. In: Proceedings of the 2008 IEEE real-time and embedded technology and applications symposium (RTAS ’08). IEEE Comput Soc, Washington, pp 80–89
Acknowledgements
We would like to thank the anonymous reviewers for their constructive comments and suggestions. This work was supported by the Coordination for Improvement of Higher Level Personnel (CAPES) and the Foreign Affairs and International Trade Canada/Affaires étrangères et Commerce international Canada (DFAIT) grants, projects RH-TVD 006/2008 and CAPES-DFAIT 004/11.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Gracioli, G., Fröhlich, A.A., Pellizzoni, R. et al. Implementation and evaluation of global and partitioned scheduling in a real-time OS. Real-Time Syst 49, 669–714 (2013). https://doi.org/10.1007/s11241-013-9183-3
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11241-013-9183-3