Advertisement

Real-Time Systems

, Volume 49, Issue 6, pp 669–714 | Cite as

Implementation and evaluation of global and partitioned scheduling in a real-time OS

  • Giovani Gracioli
  • Antônio Augusto Fröhlich
  • Rodolfo Pellizzoni
  • Sebastian Fischmeister
Article

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.

Keywords

Real-time scheduling Multicore processors Real-time operating systems Global EDF Partitioned EDF 

Notes

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.

References

  1. Abeni L, Buttazzo G (2004) Resource reservation in dynamic real-time systems. Real-Time Syst 27(2):123–167 CrossRefzbMATHGoogle Scholar
  2. 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 Google Scholar
  3. AMD (2010) Amd64 architecture programmer’s manual, volume 2: System programming. Publication No. 24593. Revision: 3.17, June 2010 Google Scholar
  4. Anderson JH, Block A (2000) Early-release fair scheduling. In: Proceedings of the 12th Euromicro conference on real-time systems, pp 35–43 Google Scholar
  5. 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 Google Scholar
  6. 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 CrossRefGoogle Scholar
  7. 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 CrossRefGoogle Scholar
  8. 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 CrossRefGoogle Scholar
  9. Å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) Google Scholar
  10. 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 CrossRefGoogle Scholar
  11. 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 CrossRefGoogle Scholar
  12. 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 Google Scholar
  13. Baker TP (2005a) An analysis of edf schedulability on a multiprocessor. IEEE Trans Parallel Distrib Syst 16(8):760–768 CrossRefGoogle Scholar
  14. 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 Google Scholar
  15. Baker TP, Baruah S (2009) An analysis of global edf schedulability for arbitrary-deadline sporadic task systems. Real-Time Syst 43(1):3–24 CrossRefzbMATHGoogle Scholar
  16. 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 CrossRefGoogle Scholar
  17. 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 CrossRefGoogle Scholar
  18. Baruah SK, Cohen NK, Plaxton CG, Varvel DA (1996) Proportionate progress: a notion of fairness in resource allocation. Algorithmica 15:600–625 MathSciNetCrossRefzbMATHGoogle Scholar
  19. 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 Google Scholar
  20. 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 CrossRefGoogle Scholar
  21. 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 CrossRefGoogle Scholar
  22. Bertogna M, Baruah S (2011) Tests for global edf schedulability analysis. J Syst Archit 57(5):487–497 CrossRefGoogle Scholar
  23. 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 CrossRefGoogle Scholar
  24. 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 CrossRefGoogle Scholar
  25. 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 CrossRefGoogle Scholar
  26. Brandenburg BB (2011) Scheduling and locking in multiprocessor real-time operating systems. PhD thesis, The University of North Carolina at Chapel Hill Google Scholar
  27. 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 Google Scholar
  28. 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 CrossRefGoogle Scholar
  29. 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 CrossRefGoogle Scholar
  30. 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 CrossRefGoogle Scholar
  31. 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 CrossRefzbMATHGoogle Scholar
  32. 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 CrossRefGoogle Scholar
  33. 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 Google Scholar
  34. 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 Google Scholar
  35. 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 Google Scholar
  36. 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 Google Scholar
  37. Czarnecki K, Eisenecker UW (2000) Generative programming: methods, tools, and applications. ACM/Addison-Wesley, New York Google Scholar
  38. 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 Google Scholar
  39. Dijkstra EW (1968) Cooperating sequential processes. In: Genuys F (ed) Programming languages: NATO Advanced Study Institute. Academic Press, New York, pp 43–112 Google Scholar
  40. 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 Google Scholar
  41. EPOS (2012) Epos website. URL http://epos.lisha.ufsc.br
  42. 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 Google Scholar
  43. Fröhlich AA (2001) Application-oriented operating systems. GMD research series, vol 17. GMD—Forschungszentrum Informationstechnik, Sankt Augustin Google Scholar
  44. Fröhlich AA (2011) A comprehensive approach to power management in embedded systems. Int J Distrib Sens Netw 2011(1):19 Google Scholar
  45. Fröhlich AA, Gracioli G, Santos JF (2011) Periodic timers revisited: the real-time embedded system perspective. Comput Electr Eng 37(3):365–375 CrossRefGoogle Scholar
  46. Garey MR, Johnson DS (1990) Computers and intractability; a guide to the theory of NP-completeness. Freeman, New York Google Scholar
  47. Goossens J, Funk S, Baruah S (2003) Priority-driven scheduling of periodic task systems on multiprocessors. Real-Time Syst 25(2–3):187–205 CrossRefzbMATHGoogle Scholar
  48. 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 Google Scholar
  49. 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 CrossRefGoogle Scholar
  50. 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 Google Scholar
  51. Hennessy JL, Patterson DA (2006) Computer architecture: a quantitative approach, 4th edn. Morgan Kaufmann, San Mateo Google Scholar
  52. Intel Corporation (2009) An introduction to the Intel quickpath interconnect. Document Number: 320412-001US, January 2009 Google Scholar
  53. Intel Corporation (2011) Intel® 64 and IA-32 architectures software developer’s manual. 253668-037US Google Scholar
  54. Intel Corporation (2012) Intel® 64 and IA-32 architectures optimization reference manual. 248966-026 Google Scholar
  55. Johnson D (1973) Near-optimal bin packing algorithms. PhD thesis Google Scholar
  56. Kato S (2012) AIRS website. URL http://www.ertl.jp/~shinpei/airs/
  57. 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 Google Scholar
  58. 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 CrossRefGoogle Scholar
  59. 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 CrossRefGoogle Scholar
  60. 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 CrossRefGoogle Scholar
  61. 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 CrossRefGoogle Scholar
  62. 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 Google Scholar
  63. 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 Google Scholar
  64. Liu CL, Layland JW (1973) Scheduling algorithms for multiprogramming in a hard-real-time environment. J ACM 20(1):46–61 MathSciNetCrossRefzbMATHGoogle Scholar
  65. Liu J (2000) Real-time systems, 1st edn. Prentice Hall PTR, Upper Saddle River Google Scholar
  66. 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 Google Scholar
  67. 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 CrossRefGoogle Scholar
  68. 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 CrossRefGoogle Scholar
  69. 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 Google Scholar
  70. Mogul JC, Borg A (1991) The effect of context switches on cache performance. Oper Syst Rev 25:75–84 (Special Issue) CrossRefGoogle Scholar
  71. 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 Google Scholar
  72. 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) Google Scholar
  73. 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 Google Scholar
  74. 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 Google Scholar
  75. 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 CrossRefGoogle Scholar
  76. 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 CrossRefGoogle Scholar
  77. Palopoli L, Cucinotta T, Marzario L, Lipari G (2009) Aquosa—adaptive quality of service architecture. Softw Pract Exp 39(1):1–31 CrossRefGoogle Scholar
  78. Polpeta FV, Fröhlich AA (2004) Hardware mediators: a portability artifact for component-based systems. In: EUC, pp 271–280 Google Scholar
  79. SHARCNET (2012) Sharcnet cluster website. URL https://www.sharcnet.ca
  80. Sprunt B (2002) Pentium 4 performance-monitoring features. IEEE MICRO 22(4):72–82 CrossRefGoogle Scholar
  81. 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 CrossRefGoogle Scholar
  82. 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 Google Scholar
  83. 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 CrossRefGoogle Scholar
  84. 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 CrossRefGoogle Scholar
  85. 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 CrossRefGoogle Scholar
  86. 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 Google Scholar
  87. Vera X, Lisper B, Xue J (2003) Data cache locking for higher program predictability. ACM SIGMETRICS Perform Eval Rev 31(1):272–282 CrossRefGoogle Scholar
  88. Wanner LF, Fröhlich AA (2008) Operating system support for wireless sensor networks. J Comput Sci 4(4):272–281 CrossRefGoogle Scholar
  89. 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 CrossRefGoogle Scholar
  90. 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 CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • Giovani Gracioli
    • 1
  • Antônio Augusto Fröhlich
    • 1
  • Rodolfo Pellizzoni
    • 2
  • Sebastian Fischmeister
    • 2
  1. 1.Federal University of Santa CatarinaFlorianópolisBrazil
  2. 2.University of WaterlooWaterlooCanada

Personalised recommendations