Nothing Special   »   [go: up one dir, main page]

Skip to main content

Identifying a Unifying Mechanism for the Implementation of Concurrency Abstractions on Multi-language Virtual Machines

  • Conference paper
Objects, Models, Components, Patterns (TOOLS 2012)

Abstract

Supporting all known abstractions for concurrent and parallel programming in a virtual machines (VM) is a futile undertaking, but it is required to give programmers appropriate tools and performance. Instead of supporting all abstractions directly, VMs need a unifying mechanism similar to INVOKEDYNAMIC for JVMs.

Our survey of parallel and concurrent programming concepts identifies concurrency abstractions as the ones benefiting most from support in a VM. Currently, their semantics is often weakened, reducing their engineering benefits. They require a mechanism to define flexible language guarantees.

Based on this survey, we define an ownership-based meta-object protocol as candidate for VM support. We demonstrate its expressiveness by implementing actor semantics, software transactional memory, agents, CSP, and active objects. While the performance of our prototype confirms the need for VM support, it also shows that the chosen mechanism is appropriate to express a wide range of concurrency abstractions in a unified way.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Bracha, G., Ungar, D.: Mirrors: design principles for meta-level facilities of object-oriented programming languages. In: Proc. of OOPSLA 2004, pp. 331–344. ACM (2004)

    Google Scholar 

  2. Briot, J.P., Guerraoui, R., Lohr, K.P.: Concurrency and distribution in object-oriented programming. ACM Computing Surveys 30(3), 291–329 (1998)

    Article  Google Scholar 

  3. Budimlic, Z., Chandramowlishwaran, A., Knobe, K., Lowney, G., Sarkar, V., Treggiari, L.: Multi-core implementations of the concurrent collections programming model. In: The 14th Workshop on Compilers for Parallel Computing (January 2009)

    Google Scholar 

  4. Bykov, S., Geller, A., Kliot, G., Larus, J.R., Pandya, R., Thelin, J.: Orleans: Cloud computing for everyone. In: Proc. of SOCC 2011, pp. 16:1–16:14. ACM (2011)

    Google Scholar 

  5. Demsky, B., Lam, P.: Views: object-inspired concurrency control. In: Proc. of ICSE 2010 (2010)

    Google Scholar 

  6. Gal, A., Probst, C.W., Franz, M.: Hotpathvm: An effective jit compiler for resource-constrained devices. In: Proc. of VEE 2006, pp. 144–153. ACM (2006)

    Google Scholar 

  7. Gelernter, D.: Generative communication in linda. ACM TOPLAS 7, 80–112 (1985)

    Article  MATH  Google Scholar 

  8. Georges, A., Buytaert, D., Eeckhout, L.: Statistically rigorous java performance evaluation. SIGPLAN Not. 42(10), 57–76 (2007)

    Article  Google Scholar 

  9. Halstead Jr., R.H.: Multilisp: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 501–538 (1985)

    Article  MATH  Google Scholar 

  10. Hoffman, K.J., Metzger, H., Eugster, P.: Ribbons: A partially shared memory programming model. SIGPLAN Not. 46, 289–306 (2011)

    Article  Google Scholar 

  11. Karmani, R.K., Shali, A., Agha, G.: Actor frameworks for the jvm platform: A comparative analysis. In: Proc. of PPPJ 2009, pp. 11–20. ACM (2009)

    Google Scholar 

  12. Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT (1991)

    Google Scholar 

  13. Lavender, R.G., Schmidt, D.C.: Active object: An object behavioral pattern for concurrent programming. In: Pattern Languages of Program Design 2, pp. 483–499. Addison-Wesley Longman Publishing Co., Inc. (1996)

    Google Scholar 

  14. Lea, D.: A java fork/join framework. In: JAVA 2000: Proceedings of the ACM 2000 Conference on Java Grande, pp. 36–43. ACM (2000)

    Google Scholar 

  15. Lublinerman, R., Zhao, J., Budimlić, Z., Chaudhuri, S., Sarkar, V.: Delegated isolation. SIGPLAN Not. 46, 885–902 (2011)

    Article  Google Scholar 

  16. Lämmel, R.: Google’s mapreduce programming model - revisited. SCP 70(1), 1–30 (2008)

    MATH  Google Scholar 

  17. Marr, S., Haupt, M., D’Hondt, T.: Intermediate language design of high-level language virtual machines: Towards comprehensive concurrency support. In: Proc. VMIL 2009 Workshop, pp. 3:1–3:2. ACM (October 2009) (extended abstract)

    Google Scholar 

  18. Miller, M.S., Tribble, E.D., Shapiro, J.S.: Concurrency Among Strangers: Programming in E as Plan Coordination. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195–229. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  19. Morandi, B., Bauer, S.S., Meyer, B.: SCOOP – A Contract-Based Concurrent Object-Oriented Programming Model. In: Müller, P. (ed.) LASER Summer School 2007/2008. LNCS, vol. 6029, pp. 41–90. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  20. Nordlander, J., Jones, M.P., Carlsson, M., Kieburtz, R.B., Black, A.P.: Reactive objects. In: Symposium on Object-Oriented Real-Time Distributed Computing, pp. 155–158 (2002)

    Google Scholar 

  21. Renggli, L., Nierstrasz, O.: Transactional memory for smalltalk. In: ICDL 2007: Proceedings of the 2007 International Conference on Dynamic Languages, pp. 207–221. ACM (2007)

    Google Scholar 

  22. Scholliers, C., Tanter, E., De Meuter, W.: Parallel actor monitors. In: 14th Brazilian Symposium on Programming Languages (2010)

    Google Scholar 

  23. Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing Active Objects to Concurrent Components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  24. Shavit, N., Touitou, D.: Software transactional memory. In: Proc. of PODC 1995. ACM (1995)

    Google Scholar 

  25. Skillicorn, D.B., Talia, D.: Models and languages for parallel computation. ACM CSUR 30, 123–169 (1998)

    Article  Google Scholar 

  26. Thalinger, C., Rose, J.: Optimizing invokedynamic. In: Proc. of PPPJ 2010, pp. 1–9. ACM (2010)

    Google Scholar 

  27. Van Cutsem, T., Miller, M.S.: Proxies: Design principles for robust object-oriented intercession apis. In: Proc. of DLS 2010, pp. 59–72. ACM (October 2010)

    Google Scholar 

  28. Van Cutsem, T., Mostinckx, S., Gonzalez Boix, E., Dedecker, J., De Meuter, W.: Ambienttalk: Object-oriented event-driven programming in mobile ad hoc networks. In: Proc. of SCCC 2007, pp. 3–12. IEEE CS (2007)

    Google Scholar 

  29. Verwaest, T., Bruni, C., Lungu, M., Nierstrasz, O.: Flexible object layouts: Enabling lightweight language extensions by intercepting slot access. In: Proc. of OOPSLA 2011, pp. 959–972 (2011)

    Google Scholar 

  30. Ziarek, L., Welc, A., Adl-Tabatabai, A.-R., Menon, V., Shpeisman, T., Jia, L.: A Uniform Transactional Execution Environment for Java. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 129–154. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Marr, S., D’Hondt, T. (2012). Identifying a Unifying Mechanism for the Implementation of Concurrency Abstractions on Multi-language Virtual Machines. In: Furia, C.A., Nanz, S. (eds) Objects, Models, Components, Patterns. TOOLS 2012. Lecture Notes in Computer Science, vol 7304. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30561-0_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-30561-0_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-30560-3

  • Online ISBN: 978-3-642-30561-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics