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.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
Agha GA (1986) ACTORS: a model of concurrent computations in distributed systems. The MIT Press, Cambridge
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–254
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–464
Andrews GR (1999) Foundations of multithreaded, parallel, and distributed programming. Addison-Wesley, Menlo Park
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–30
Armstrong J (2007) Programming Erlang: software for a concurrent world. Pragmatic Bookshelf
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–81
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–206
Buttazzo G (2004) Hard real-time computing systems: predictable scheduling algorithms and applications, 2nd edn. Kluwer, Dordrecht
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–155
Cheng AMK (2002) Real-Time systems: scheduling, analysis, and verification. Wiley, New York
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, Berlin
Coffman EG (1976) Computer and job-shop scheduling theory. Wiley, New York
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–370
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–330
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–18
Dibble PC (2008) Real-time Java platform programming,2nd edn. BookSurge Publishing, Charleston
Fersman E, Krcál P, Pettersson P, Yi W (2007) Task automata: schedulability, decidability and undecidability. Inf Comput 205(8): 1149–1172
Haller P, Odersky M. (2009) Scala actors: unifying thread-based and event-based programming. Theor Comput Sci 410(2–3): 202–220
Harchol-Balter M, Schroeder B, Bansal N, Agrawal M (2003) Size-based scheduling to improve web performance. ACM Trans Comput Syst 21(2): 207–233
Hoare CAR (1974) Monitors: an operating system structuring concept. Commun ACM 17: 549–557
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–62
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–269
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–164
Johnsen EB, Owe O (2007) An asynchronous communication model for distributed concurrent objects. Softw Syst Model 6(1): 35–58
Larsen KG, Pettersson P, Yi W (1997) UPPAAL in a nutshell. Int J Softw Tools Technol Transf 1(1–2): 134–152
Lee EA (2009) Computing needs time. Commun ACM 52(5): 70–79
Logan M, Merritt E, Carlsson R (2010) Erlang and OTP in action. Manning Publications, Greenwich
Meseguer J (1992) Conditional rewriting logic as a unified model of concurrency. Theor Comput Sci 96: 73–155
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 York
Öauml;lveczky PC, Meseguer J (2002) Specification of real-time and hybrid systems in rewriting logic. Theor Comput Sci 285(2): 359–405
Ölveczky PC, Meseguer J (2007) Semantics and pragmatics of Real-Time Maude. Higher-Order Symbol Comput 20(1–2): 161–196
Pierce BC (2002) Types and programming languages. The MIT Press, Cambridge
Plotkin GD (2004) A structural approach to operational semantics. J Logic Algebr Program 60-61: 17–139
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–406
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–299
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)
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–834
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–128
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–781
Author information
Authors and Affiliations
Corresponding author
Additional information
This research is partly funded by the EU project FP7-231620 HATS: Highly Adaptable and Trustworthy Software using Formal Models (http://www.hats-project.eu).
Rights and permissions
About this article
Cite this article
Bjørk, J., de Boer, F.S., Johnsen, E.B. et al. User-defined schedulers for real-time concurrent objects. Innovations Syst Softw Eng 9, 29–43 (2013). https://doi.org/10.1007/s11334-012-0184-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-012-0184-5