User-defined schedulers for real-time concurrent objects

  • Joakim Bjørk
  • Frank S. de Boer
  • Einar Broch Johnsen
  • Rudolf Schlatte
  • S. Lizeth Tapia Tarifa
SI: Theories & Tool Support for Software

Abstract

Scheduling concerns the allocation of processors to processes, and is traditionally associated with low-level tasks in operating systems and embedded devices. However, modern software applications with soft real-time requirements need to control application-level performance. High-level scheduling control at the application level may complement general purpose OS level scheduling to fine-tune performance of a specific application, by allowing the application to adapt to changes in client traffic on the one hand and to low-level scheduling on the other hand. This paper presents an approach to express and analyze application-specific scheduling decisions during the software design stage. For this purpose, we integrate support for application-level scheduling control in a high-level object-oriented modeling language, Real-Time ABS, in which executable specifications of method calls are given deadlines and real-time computational constraints. In Real-Time ABS, flexible application-specific schedulers may be specified by the user, i.e., developer, at the abstraction level of the high-level modeling language itself and associated with concurrent objects at creation time. Tool support for Real-Time ABS is based on an abstract interpreter that supports simulations and measurements of systems at the design stage.

Keywords

Scheduling policies Real-time Modeling languages Object orientation Operational semantics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Agha GA (1986) ACTORS: a model of concurrent computations in distributed systems. The MIT Press, CambridgeGoogle Scholar
  2. 2.
    Albert E, Arenas P, Genaim S, Gómez-Zamalloa M, Puebla G (2011) Cost analysis of concurrent OO programs. In: Proceedings of 9th Asian symposium on programming languages and systems (APLAS 2011). Lecture notes in computer science, vol 7078. Springer, Berlin, pp 238–254Google Scholar
  3. 3.
    Amnell T, Fersman E, Mokrushin L, Pettersson P, Yi W (2002) TIMES—a tool for modelling and implementation of embedded systems. In: Proceedings of the 8th international conference on tools and algorithms for the construction and analysis of systems (TACAS 2002), Lecture notes in computer science, vol 2280. Springer, Berlin, pp 460–464Google Scholar
  4. 4.
    Andrews GR (1999) Foundations of multithreaded, parallel, and distributed programming. Addison-Wesley, Menlo ParkGoogle Scholar
  5. 5.
    Angerer CM, Gross TR (2010) Static analysis of dynamic schedules and its application to optimization of parallel programs. In: Proceedings of 23rd languages and compilers for parallel computing (LCPC 2010), Lecture notes in computer science, vol 6548. Springer, Berlin, pp 16–30Google Scholar
  6. 6.
    Armstrong J (2007) Programming Erlang: software for a concurrent world. Pragmatic BookshelfGoogle Scholar
  7. 7.
    Bjørk J, Johnsen EB, Owe O, Schlatte R (2010) Lightweight time modeling in Timed Creol. In: Proceedings of 1st international workshop on rewriting techniques for real-time systems (RTRTS 2010), Electronic proceedings in theoretical computer science, vol 36, pp 67–81Google Scholar
  8. 8.
    Blair GS, Coulson G, Robin P, Papathomas M (1998) An architecture for next generation middleware. In: Proceedings of IFIP international conference on distributed systems platforms and open distributed processing (Middleware’98). Springer, Berlin, pp 191–206Google Scholar
  9. 9.
    Buttazzo G (2004) Hard real-time computing systems: predictable scheduling algorithms and applications, 2nd edn. Kluwer, DordrechtGoogle Scholar
  10. 10.
    Chakravarti AJ, Baumgartner G, Lauria M (2004) Application-specific scheduling for the organic grid. In: Proceedings of 5th IEEE/ACM international workshop on grid computing (GRID’04). IEEE Computer Society, pp 146–155Google Scholar
  11. 11.
    Cheng AMK (2002) Real-Time systems: scheduling, analysis, and verification. Wiley, New YorkCrossRefGoogle Scholar
  12. 12.
    Clavel M, Durán F, Eker S, Lincoln P, Martí-Oliet N, Meseguer J, Talcott CL (eds) (2007) All about Maude—a high-performance logical framework, how to specify, program and verify systems in rewriting logic, Lecture notes in computer science, vol 4350. Springer, BerlinGoogle Scholar
  13. 13.
    Coffman EG (1976) Computer and job-shop scheduling theory. Wiley, New YorkMATHGoogle Scholar
  14. 14.
    David A, Larsen KG, Legay A, Nyman U, Wasowski A (2010) ECDAR: an environment for compositional design and analysis of real time systems. In: Proceedings of 8th automated technology for verification and analysis (ATVA 2010), Lecture notes in computer science, vol 6252. Springer, Berlin, pp 365–370Google Scholar
  15. 15.
    de Boer FS, Clarke D, Johnsen EB (2007) A complete guide to the future. In: de Nicola R (ed) Proceedings of 16th European symposium on programming (ESOP’07), Lecture notes in computer science, vol 4421. Springer, Berlin, pp 316–330Google Scholar
  16. 16.
    de Boer FS, Jaghoori MM, Johnsen EB (2010) Dating concurrent objects: real-time modeling and schedulability analysis. In: Proceedings of 21st international conference on concurrency theory (CONCUR), Lecture notes in computer science, vol 6269. Springer, Berlin, pp 1–18Google Scholar
  17. 17.
    Dibble PC (2008) Real-time Java platform programming,2nd edn. BookSurge Publishing, CharlestonGoogle Scholar
  18. 18.
    Fersman E, Krcál P, Pettersson P, Yi W (2007) Task automata: schedulability, decidability and undecidability. Inf Comput 205(8): 1149–1172MATHCrossRefGoogle Scholar
  19. 19.
    Haller P, Odersky M. (2009) Scala actors: unifying thread-based and event-based programming. Theor Comput Sci 410(2–3): 202–220MathSciNetMATHCrossRefGoogle Scholar
  20. 20.
    Harchol-Balter M, Schroeder B, Bansal N, Agrawal M (2003) Size-based scheduling to improve web performance. ACM Trans Comput Syst 21(2): 207–233CrossRefGoogle Scholar
  21. 21.
    Hoare CAR (1974) Monitors: an operating system structuring concept. Commun ACM 17: 549–557MATHCrossRefGoogle Scholar
  22. 22.
    Hsiung PA, Huang CH, Chen YH (2009) Hardware task scheduling and placement in operating systems for dynamically reconfigurable soc. J Embed Comput 3(1): 53–62Google Scholar
  23. 23.
    Hsu CH, Chen SC (2010) A two-level scheduling strategy for optimising communications of data parallel programs in clusters. Int J Ad Hoc Ubiquitous Comput 6(4): 263–269MathSciNetCrossRefGoogle Scholar
  24. 24.
    Johnsen EB, Hähnle R, Schäfer J, Schlatte R, Steffen M (2011) ABS: a core language for abstract behavioral specification. In: Aichernig B, de Boer FS, Bonsangue MM (eds) Proceedings of 9th international symposium on formal methods for components and objects (FMCO 2010), Lecture notes in computer science, vol 6957. Springer, Berlin, pp 142–164Google Scholar
  25. 25.
    Johnsen EB, Owe O (2007) An asynchronous communication model for distributed concurrent objects. Softw Syst Model 6(1): 35–58CrossRefGoogle Scholar
  26. 26.
    Larsen KG, Pettersson P, Yi W (1997) UPPAAL in a nutshell. Int J Softw Tools Technol Transf 1(1–2): 134–152MATHCrossRefGoogle Scholar
  27. 27.
    Lee EA (2009) Computing needs time. Commun ACM 52(5): 70–79CrossRefGoogle Scholar
  28. 28.
    Logan M, Merritt E, Carlsson R (2010) Erlang and OTP in action. Manning Publications, GreenwichGoogle Scholar
  29. 29.
    Meseguer J (1992) Conditional rewriting logic as a unified model of concurrency. Theor Comput Sci 96: 73–155MathSciNetMATHCrossRefGoogle Scholar
  30. 30.
    Nobakht B, de Boer FS, Jaghoori MM, Schlatte R (2012) Programming and deployment of active objects with application-level scheduling. In: Proceedings of symposium on applied computing (SAC). ACM, New YorkGoogle Scholar
  31. 31.
    Öauml;lveczky PC, Meseguer J (2002) Specification of real-time and hybrid systems in rewriting logic. Theor Comput Sci 285(2): 359–405MATHCrossRefGoogle Scholar
  32. 32.
    Ölveczky PC, Meseguer J (2007) Semantics and pragmatics of Real-Time Maude. Higher-Order Symbol Comput 20(1–2): 161–196MATHCrossRefGoogle Scholar
  33. 33.
    Pierce BC (2002) Types and programming languages. The MIT Press, CambridgeGoogle Scholar
  34. 34.
    Plotkin GD (2004) A structural approach to operational semantics. J Logic Algebr Program 60-61: 17–139MathSciNetCrossRefGoogle Scholar
  35. 35.
    Santoso J, van Albada GD, Nazief BAA, Sloot PMA (2000) Simulating job scheduling for clusters of workstations. In: Bubak M, Afsarmanesh H, Williams R, Hertzberger LO (eds) 8th International conference on high-performance computing and networking (HPCN Europe 2000), Lecture notes in computer science, vol 1823. Springer, Berlin, pp 395–406Google Scholar
  36. 36.
    Schäfer J, Poetzsch-Heffter A (2010) JCoBox: generalizing active objects to concurrent components. In: European conference on object-oriented programming (ECOOP 2010), Lecture notes in computer science, vol 6183. Springer, Berlin, pp 275–299Google Scholar
  37. 37.
    Schoeberl M (2004) Real-time scheduling on a Java processor. In: Proceedings of 10th international conference on real-time and embedded computing systems and applications (RTCSA)Google Scholar
  38. 38.
    Sorensen A, Gardner H (2010) Programming with time: cyber-physical programming with Impromptu. In: Cook WR, Clarke S, Rinard MC (eds) Proceedings of object-oriented programming, systems, languages, and applications (OOPSLA). ACM, New York, pp 822–834Google Scholar
  39. 39.
    Srinivasan S, Mycroft A (2008) Kilim: isolation-typed actors for Java. In: Vitek J (ed) Proceedings of 22nd European conference on object-oriented programming (ECOOP 2008), Lecture notes in computer science, vol 5142. Springer, Berlin, pp 104–128Google Scholar
  40. 40.
    Tchernykh A, Ramírez-Alcaraz JM, Avetisyan A, Kuzjurin N, Grushin D, Zhuk S (2005) Two level job-scheduling strategies for a computational grid. In: Wyrzykowski R, Dongarra J, Meyer N, Wasniewski J (eds) 6th International conference on parallel processing and applied mathematics (PPAM), Lecture notes in computer science, vol 3911. Springer, Berlin, pp 774–781Google Scholar

Copyright information

© Springer-Verlag London Limited 2012

Authors and Affiliations

  • Joakim Bjørk
    • 1
  • Frank S. de Boer
    • 2
  • Einar Broch Johnsen
    • 1
  • Rudolf Schlatte
    • 1
  • S. Lizeth Tapia Tarifa
    • 1
  1. 1.University of OsloOsloNorway
  2. 2.CWIAmsterdamThe Netherlands

Personalised recommendations