Skip to main content

Reasoning About Concurrency in High-Assurance, High-Performance Software Systems

  • Conference paper
  • First Online:
Automated Deduction – CADE 26 (CADE 2017)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 10395))

Included in the following conference series:

Abstract

We describe our work in the Trustworthy Systems group at Data61 (formerly NICTA) in reasoning about concurrency in high-assurance, high-performance software systems, in which concurrency may come from three different sources: multiple cores, interrupts and application-level interleaving.

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 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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. eChronos model and proofs. https://github.com/echronos/echronos-proofs

  2. The eChronos OS. http://echronos.systems

  3. Amani, S., Andronick, J., Bortin, M., Lewis, C., Christine, R., Tuong, J.: Complx: a verification framework for concurrent imperative programs. In: Bertot, Y., Vafeiadis, V. (eds.) CPP, pp. 138–150. ACM, Paris (2017)

    Google Scholar 

  4. Andronick, J., Greenaway, D., Elphinstone, K.: Towards proving security in the presence of large untrusted components. In: Huuck, R., Klein, G., Schlich, B. (eds.) SSV, p. 9. USENIX, Vancouver (2010)

    Google Scholar 

  5. Andronick, J., Klein, G.: Formal system verification - extension 2, final report AOARD #FA2386-12-1-4022. Technical report, NICTA, Sydney, Australia, August 2012

    Google Scholar 

  6. Andronick, J., Lewis, C., Matichuk, D., Morgan, C., Rizkallah, C.: Proof of OS scheduling behavior in the presence of interrupt-induced concurrency. In: Blanchette, J.C., Merz, S. (eds.) ITP 2016. LNCS, vol. 9807, pp. 52–68. Springer, Cham (2016). doi:10.1007/978-3-319-43144-4_4

    Chapter  Google Scholar 

  7. Andronick, J., Lewis, C., Morgan, C.: Controlled Owicki-gries concurrency: reasoning about the preemptible eChronos embedded operating system. In: van Glabbeek, R.J., Groote, J.F., Höfner, P. (eds.) Workshop on Models for Formal Analysis of Real Systems (MARS 2015), pp. 10–24, Suva, Fiji, November 2015

    Google Scholar 

  8. Appel, A.W.: Verified software toolchain. In: Barthe, G. (ed.) ESOP 2011. LNCS, vol. 6602, pp. 1–17. Springer, Heidelberg (2011). doi:10.1007/978-3-642-19718-5_1

    Chapter  Google Scholar 

  9. Chen, H., Wu, X.N., Shao, Z., Lockerman, J., Gu, R.: Toward compositional verification of interruptible OS kernels and device drivers. In: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, pp. 431–447. ACM, New York (2016)

    Google Scholar 

  10. COMPLX entry in the Archive of Formal Proofs. https://www.isa-afp.org/entries/Complx.shtml

  11. Gu, R., Shao, Z., Chen, H., Wu, X.N., Kim, J., Sjöberg, V., Costanzo, D.: CertiKOS: an extensible architecture for building certified concurrent OS kernels. In: OSDI, November 2016

    Google Scholar 

  12. Heiser, G., Andronick, J., Elphinstone, K., Klein, G., Kuz, I., Ryzhyk, L.: The road to trustworthy systems. In: ACMSTC, pp. 3–10. ACM, October 2010

    Google Scholar 

  13. Jones, C.B.: Tentative steps towards a development method for interfering programs. Trans. Program. Lang. Syst. 5(4), 596–619 (1983)

    Article  MATH  Google Scholar 

  14. Klein, G., Andronick, J., Elphinstone, K., Heiser, G., Cock, D., Derrin, P., Elkaduwe, D., Engelhardt, K., Kolanski, R., Norrish, M., Sewell, T., Tuch, H., Winwood, S.: seL4: formal verification of an operating-system kernel. CACM 53(6), 107–115 (2010)

    Article  Google Scholar 

  15. Klein, G., Andronick, J., Elphinstone, K., Murray, T., Sewell, T., Kolanski, R., Heiser, G.: Comprehensive formal verification of an OS microkernel. Trans. Comput. Syst. 32(1), 2:1–2:70 (2014)

    Google Scholar 

  16. Leroy, X.: Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In: Morrisett, J.G., Jones, S.L.P. (eds.) 33rd POPL, pp. 42–54. ACM, Charleston (2006)

    Google Scholar 

  17. Nipkow, T., Wenzel, M., Paulson, L.C. (eds.): Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002). doi:10.1007/3-540-45949-9

    MATH  Google Scholar 

  18. OHearn, P.W.: Resources, concurrency, and local reasoning. Theor. Comput. Sci. 375(1–3), 271–307 (2007)

    Article  MathSciNet  Google Scholar 

  19. Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs. Acta Informatica 6, 319–340 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  20. Peters, S., Danis, A., Elphinstone, K., Heiser, G.: For a microkernel, a big lock is fine. In: APSys, Tokyo, JP, July 2015

    Google Scholar 

  21. Potts, D., Bourquin, R., Andresen, L., Andronick, J., Klein, G., Heiser, G.: Mathematically verified software kernels: raising the bar for high assurance implementations. Technical report, NICTA, Sydney, Australia, July 2014

    Google Scholar 

  22. Schirmer, N.: Verification of sequential imperative programs in Isabelle/HOL. Ph.D. thesis, Technische Universität München (2006)

    Google Scholar 

  23. von Tessin, M.: The clustered multikernel: an approach to formal verification of multiprocessor operating-system kernels. Ph.D. thesis, School Comp. Sci. & Engin., UNSW, Sydney, Australia, December 2013

    Google Scholar 

  24. Tuch, H., Klein, G., Norrish, M.: Types, bytes, and separation logic. In: Hofmann, M., Felleisen, M. (eds.) POPL, pp. 97–108. ACM, Nice (2007)

    Google Scholar 

Download references

Acknowledgements

The author would like to thank the people that have worked on the research presented in this paper: Sidney Amani, Maksym Bortin, Gerwin Klein, Corey Lewis, Daniel Matichuk, Carroll Morgan, Christine Rizkallah, and Joseph Tuong. The author also thanks Carroll Morgan, Gerwin Klein and Gernot Heiser for their feedback on drafts of this paper.

Parts of the work presented are supported by the Air Force Office of Scientific Research, Asian Office of Aerospace Research and Development (AOARD) and U.S. Army International Technology Center - Pacific under grant FA2386-15-1-4055. Other parts have been supported by AOARD grants FA2386-12-1-4022 and FA2386-10-1-4105.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to June Andronick .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Andronick, J. (2017). Reasoning About Concurrency in High-Assurance, High-Performance Software Systems. In: de Moura, L. (eds) Automated Deduction – CADE 26. CADE 2017. Lecture Notes in Computer Science(), vol 10395. Springer, Cham. https://doi.org/10.1007/978-3-319-63046-5_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-63046-5_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-63045-8

  • Online ISBN: 978-3-319-63046-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics