Skip to main content

The Essence of Multitasking

  • Conference paper
Algebraic Methodology and Software Technology (AMAST 2006)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4019))

Abstract

This article demonstrates how a powerful and expressive abstraction from concurrency theory—monads of resumptions—plays a dual rôle as a programming tool for concurrent applications. The article demonstrates how a wide variety of typical OS behaviors may be specified in terms of resumption monads known heretofore exclusively in the literature of programming language semantics. We illustrate the expressiveness of the resumption monad with the construction of an exemplary multitasking kernel in the pure functional language Haskell.

This research supported in part by subcontract GPACS0016, System Information Assurance II, through OGI/Oregon Health & Sciences University.

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 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.

References

  1. Harrison, W.: The Essence of Multithreading Codebase, available from www.cs.missouri.edu/~harrison/EssenceOfMultitasking

  2. Moggi, E.: An Abstract View of Programming Languages. Technical Report ECS-LFCS-90-113, Department of Computer Science, Edinburgh University (1990)

    Google Scholar 

  3. Papaspyrou, N., Maćoš, D.: A Study of Evaluation Order Semantics in Expressions with Side Effects. Journal of Functional Programming 10(3), 227–244 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  4. Hancock, P., Setzer, A.: Interactive programs in dependent type theory. In: Proceedings of the 14th Annual Conference of the EACSL on Computer Science Logic, pp. 317–331. Springer, London (2000)

    Google Scholar 

  5. Papaspyrou, N.: A Resumption Monad Transformer and its Applications in the Semantics of Concurrency. In: Proceedings of the 3rd Panhellenic Logic Symposium (2001) (An expanded technical report is available from the author by request)

    Google Scholar 

  6. Krstic, S., Launchbury, J., Pavlovic, D.: Categories of processes enriched in final coalgebras. In: Honsell, F., Miculan, M. (eds.) ETAPS 2001 and FOSSACS 2001. LNCS, vol. 2030, pp. 303–317. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  7. Jacobs, B., Poll, E.: Coalgebras and Monads in the Semantics of Java. Theoretical Computer Science 291(3), 329–349 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  8. Plotkin, G.: A Powerdomain Construction. SIAM Journal of Computation 5(3), 452–487 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  9. Henderson, P.: Purely functional operating systems. In: Functional Programming and Its Applications: an Advanced Course, pp. 177–191. Cambridge University Press, Cambridge (1982)

    Google Scholar 

  10. Stoye, W.: Message-based Functional Operating Systems. Science of Computer Programming 6(3), 291–311 (1986)

    Article  MATH  Google Scholar 

  11. Turner, D.: An Approach to Functional Operating Systems. In: Research Topics in Functional Programming, pp. 199–217 (1990)

    Google Scholar 

  12. Cupitt, J.: The Design and Implementation of an Operating System in a Functional Language. PhD thesis, Computing Laboratory, Univ. Kent (1992)

    Google Scholar 

  13. Carter, D.: Deterministic Concurrency. PhD thesis, Department of Computer Science, University of Bristol (1994)

    Google Scholar 

  14. Spiliopoulou, E.: Concurrent and Distributed Functional Systems. Technical Report CS-EXT-1999-240, Univ. Bristol (1999)

    Google Scholar 

  15. Launchbury, J., Peyton Jones, S.: Lazy functional state threads. In: Proceedings of PLDI 1994, pp. 24–35 (1994)

    Google Scholar 

  16. Claessen, K.: A poor man’s concurrency monad. Journal of Functional Programming 9(3), 313–323 (1999)

    Article  MATH  Google Scholar 

  17. Wand, M.: Continuation-based multiprocessing. In: Proceedings of the 1980 ACM Conference on LISP and Functional Programming, pp. 19–28. ACM Press, New York (1980)

    Chapter  Google Scholar 

  18. Flatt, M., Findler, R., Krishnamurthi, S., Felleisen, M.: Programming languages as operating systems (or revenge of the son of the lisp machine). In: Proceedings of ICFP 1999, pp. 138–147 (1999)

    Google Scholar 

  19. van Weelden, A., Plasmeijer, R.: Towards a strongly typed functional operating system. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  20. Filinski, A.: Representing monads. In: Proceedings of POPL 1994 (1994)

    Google Scholar 

  21. Ganz, S., Friedman, D., Wand, M.: Trampolined style. In: Proceedings of ICFP 1999, pp. 18–27 (1999)

    Google Scholar 

  22. Harper, R., Lee, P., Pfenning, F.: The Fox project: Advanced language technology for extensible systems. Technical Report CMU-CS-98-107, CMU (1998)

    Google Scholar 

  23. Alexander, D., Arbaugh, W., Hicks, M., Kakkar, P., Keromytis, A., Moore, J., Gunder, C., Nettles, S., Smith, J.: The switchware active network architecture. IEEE Network (1998)

    Google Scholar 

  24. Schmidt, D.: Denotational Semantics: A Methodology for Language Development. Allyn and Bacon, Boston (1986)

    Google Scholar 

  25. Bakker, J.d., Vink, E.d.: Control Flow Semantics. Foundations of Computing Series. MIT Press, Cambridge (1996)

    Google Scholar 

  26. Espinosa, D.: Semantic Lego. PhD thesis, Columbia University (1995)

    Google Scholar 

  27. Filinski, A.: Representing layered monads. In: Proceedings of POPL 1999 (1999)

    Google Scholar 

  28. Liang, S.: Modular Monadic Semantics and Compilation. PhD thesis, Yale University (1998)

    Google Scholar 

  29. Peyton Jones, S. (ed.): Haskell 98 Language and Libraries, the Revised Report. Cambridge University Press, Cambridge (2003)

    Google Scholar 

  30. Roscoe, W.: Theory and Practice of Concurrency. Prentice-Hall, Englewood Cliffs (1998)

    Google Scholar 

  31. Harrison, W., Hook, J.: Achieving information flow security through precise control of effects. In: 18th IEEE Computer Security Foundations Workshop (CSFW 2005) (2005)

    Google Scholar 

  32. Harrison, W., Harrison, R.: Domain specific languages for cellular interactions. In: Proceedings of the 26th Annual IEEE International Conference on Engineering in Medicine and Biology (2004)

    Google Scholar 

  33. Regev, A., Panina, E., Silverman, W., Cardelli, L., Shapiro, E.: Bioambients: An abstraction for biological compartments. Theoretical Computer Science 325(1), 141–167 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  34. Peyton Jones, S.: Tackling the Awkward Squad: Monadic Input/Output, Concurrency, Exceptions, and Foreign-language Calls in Haskell. In: Engineering Theories of Software Construction, pp. 47–96 (2000)

    Google Scholar 

  35. Peyton Jones, S., Wadler, P.: Imperative functional programming. In: Proceedings of POPL 1993, pp. 71–84 (1993)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Harrison, W.L. (2006). The Essence of Multitasking. In: Johnson, M., Vene, V. (eds) Algebraic Methodology and Software Technology. AMAST 2006. Lecture Notes in Computer Science, vol 4019. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11784180_14

Download citation

  • DOI: https://doi.org/10.1007/11784180_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-35633-2

  • Online ISBN: 978-3-540-35636-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics