ABSTRACT
The actor model has already proven itself as an interesting concurrency model that avoids issues such as deadlocks and race conditions by construction, and thus facilitates concurrent programming. While it has mainly been used in a distributed context it is certainly equally useful for modeling interactive components in a concurrent setting. In component based software, the actor model lends itself to naturally dividing the components over different actors and using message passing concurrency for implementing the interactivity between these components. The tradeoff is that the actor model sacrifices expressiveness and efficiency especially with respect to parallel access to shared state.
This paper gives an overview of the disadvantages of the actor model in the case of shared state and then formulates an extension of the actor model to solve these issues. Our solution proposes domains and synchronization views to solve the issues without compromising on the semantic properties of the actor model. Thus, the resulting concurrency model maintains deadlock-freedom and avoids low-level race conditions.
- Akka. http://akka.io/.Google Scholar
- Asyncobjects framework. http://tinyurl.com/ctg7zz9.Google Scholar
- G. Agha. Actors: a model of concurrent computation in distributed systems. AITR-844, 1985.Google Scholar
- G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7 (1): 1--72, 1997. Google ScholarDigital Library
- J. Armstrong, R. Virding, C. Wikstrom, and M. Williams. Concurrent programming in erlang. 1996. Google ScholarDigital Library
- M. Astley. The actor foundry: A java-based actor programming environment. University of Illinois at Urbana-Champaign: Open Systems Laboratory, 1998.Google Scholar
- L. Baduel, F. Baude, D. Caromel, A. Contes, F. Huet, M. Morel, and R. Quilici. Grid Computing: Software Environments and Tools, chapter Programming, Deploying, Composing, for the Grid. Springer-Verlag, January 2006.Google Scholar
- R. Bocchino Jr, V. Adve, D. Dig, S. Adve, S. Heumann, R. Komuravelli, J. Overbey, P. Simmons, H. Sung, and M. Vakilian. A type and effect system for deterministic parallel Java. ACM SIGPLAN Notices, 44 (10): 97--116, 2009. Google ScholarDigital Library
- E. Brewer. Towards robust distributed systems. In Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, volume 19, pages 7--10, 2000. Google ScholarDigital Library
- B. Demsky and P. Lam. Views: Object-inspired concurrency control. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1, pages 395--404. ACM, 2010. Google ScholarDigital Library
- K. Gharachorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy. Memory consistency and event ordering in scalable shared-memory multiprocessors. ACM SIGARCH Computer Architecture News, 18: 15--26, May 1990. ISSN 0163--5964. Google ScholarDigital Library
- P. Haller and M. Odersky. Scala actors: Unifying thread-based and event-based programming. Theoretical Computer Science, 410 (2--3): 202--220, 2009. Google ScholarDigital Library
- S. Halloway. Programming Clojure. Pragmatic Bookshelf, 2009. Google ScholarDigital Library
- K. Hoffman, H. Metzger, and P. Eugster. Ribbons: a partially shared memory programming model. In Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications, pages 289--306. ACM, 2011. Google ScholarDigital Library
- G. Hohpe. Programming Without a Call Stack--Event-driven Architectures. Objekt Spektrum, 2006.Google Scholar
- R. Karmani, A. Shali, and G. Agha. Actor frameworks for the jvm platform: A comparative analysis. In Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, pages 11--20. ACM, 2009. Google ScholarDigital Library
- }axumMicrosoft Corporation. Axum programming language. http://tinyurl.com/r5e558.Google Scholar
- M. S. Miller, E. D. Tribble, J. Shapiro, and H. P. Laboratories. Concurrency among strangers: Programming in e as plan coordination. In In Trustworthy Global Computing, International Symposium, TGC 2005, pages 195--229. Springer, 2005. Google ScholarDigital Library
- C. Scholliers, É. Tanter, and W. De Meuter. Parallel actor monitors. Technical report, 2010. vub-tr-soft-10-05.Google Scholar
- S. Srinivasan and A. Mycroft. Kilim: Isolation-typed actors for java. ECOOP 2008--Object-Oriented Programming, pages 104--128, 2008. Google ScholarDigital Library
- H. Sutter. Welcome to the jungle. http://herbsutter.com/welcome-to-the-jungle/, 2011.Google Scholar
- D. Ungar and R. Smith. Self: The power of simplicity, volume 22. ACM, 1987. Google ScholarDigital Library
- T. Van Cutsem, S. Mostinckx, E. Gonzalez Boix, J. Dedecker, and W. De Meuter. Ambienttalk: Object-oriented event-driven programming in mobile ad hoc networks. In Chilean Society of Computer Science, 2007. SCCC'07. XXVI International Conference of the, pages 3--12. Ieee, 2007. Google ScholarDigital Library
- C. Varela and G. Agha. Programming dynamically reconfigurable open systems with salsa. ACM SIGPLAN Notices, 36 (12): 20--34, 2001. Google ScholarDigital Library
- A. Yonezawa, J. Briot, and E. Shibayama. Object-oriented concurrent programming ABCL/1. ACM SIGPLAN Notices, 21 (11): 268, 1986. Google ScholarDigital Library
Index Terms
- Domains: safe sharing among actors
Recommendations
Tanks: multiple reader, single writer actors
AGERE! 2013: Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized controlIn the past, the Actor Model has mainly been explored in a distributed context. However, more and more application developers are also starting to use it to program shared-memory multicore machines because of the safety guarantees it provides. It avoids ...
Comments