Skip to main content

Implementing Software Transactional Memory Using STM Haskell

  • Chapter
  • First Online:
Advanced Computing and Systems for Security

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 396))

Abstract

Software transaction memory (STM) is a promising programming abstract for shared variable concurrency. This paper presents a brief description of one of the recently proposed STM and addresses the need of STM implementation. The paper also describes the implementation technique of STM in STM Haskell. In the STM implementation process, three different approaches have been presented which employ different execution policies. In the evaluation process, transactions with varying execution length are being considered which are executed in multi-threaded environment. The experimental results show an interesting outcome which focuses on the future direction of research for STM implementation.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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

References

  1. Shavit, N., Touitou, D.: Software transactional memory. In: ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, pp. 204–213. ACM (1995)

    Google Scholar 

  2. Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA ’03: Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, pp. 388–402. ACM Press (2003)

    Google Scholar 

  3. Gidenstam, A., Papatriantafilou, M.: LFthreads: a lock-free thread library. In: Principles of Distributed System, pp. 217–231. Springer, Berlin (2007)

    Google Scholar 

  4. Fernandes, S.M., Cachopo, J.: Lock-free and scalable multi-version software transactional memory. In: ACM SIGPLAN Notices, vol. 46, no. 8, pp. 179–188. ACM (2011)

    Google Scholar 

  5. Herlihy, M.P., Luchangco, V., Moir, M., Scherer, W.M.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the 22nd Annual Symposium on Principles of Distributed Computing (2003)

    Google Scholar 

  6. Tabba, F., Wang, C., Goodman, J.R., Moir, M.: NZTM: non-blocking zero-indirection transactional memory. In: Proceedings of the 21st ACM Annual Symposium on Parallelism in Algorithms and Architectures (SPAA), pp. 204–213. ACS (2009)

    Google Scholar 

  7. Ghosh, A., Chaki, N.: The new OFTM algorithm toward abort-free execution. In: Proceedings of the 9th International Conference on Distributed Computing and Information Technology, pp. 255–266. Springer, Berlin (2013)

    Google Scholar 

  8. Dolev, S., Fatourou, P., Kosmas, E.: Abort Free SemanticTM by Dependency Aware Scheduling of Transactional Instructions, Preprint, TRANSACT’13 (2013)

    Google Scholar 

  9. Discolo, A., Harris, T., Marlow, S., Jones, S.P., Singh, S.: Lock free data structures using STM in Haskell. In: Functional and Logic Programming, pp. 65–80. Springer, Berlin (2006)

    Google Scholar 

  10. Harris, T., Marlow, S., Peyton Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP 2005. ACM Press, New York (2005)

    Google Scholar 

  11. Du Bois, A.R.: An implementation of composable memory transactions in Haskell. In: Software Composition, pp. 34–50. Springer, Berlin (2011)

    Google Scholar 

  12. Borgström, J., Bhargavan, K., Gordon, A.D.: A compositional theory for STM Haskell. In: Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell, pp. 69–80. ACM (2009)

    Google Scholar 

  13. Jones, S.P., Singh, S.: A tutorial on parallel and concurrent programming in Haskell. In: Advanced Functional Programming, pp. 267–305. Springer, Berlin (2009)

    Google Scholar 

  14. Marlow, S.: Parallel and Concurrent Programming in Haskell, 1st, edn. O’Reilly Media, Inc. (2013)

    Google Scholar 

  15. O’Sullivan, B., Goerzen, J., Stewart, D.: Real World Haskell, 1st edn. O’Reilly Media, Inc. (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ammlan Ghosh .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer India

About this chapter

Cite this chapter

Ghosh, A., Chaki, R. (2016). Implementing Software Transactional Memory Using STM Haskell. In: Chaki, R., Cortesi, A., Saeed, K., Chaki, N. (eds) Advanced Computing and Systems for Security. Advances in Intelligent Systems and Computing, vol 396. Springer, New Delhi. https://doi.org/10.1007/978-81-322-2653-6_16

Download citation

  • DOI: https://doi.org/10.1007/978-81-322-2653-6_16

  • Published:

  • Publisher Name: Springer, New Delhi

  • Print ISBN: 978-81-322-2651-2

  • Online ISBN: 978-81-322-2653-6

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics