Skip to main content

Monitors, Axiomatic Verification of

  • Reference work entry
Encyclopedia of Parallel Computing
  • 78 Accesses

Definition

A monitor is a shared abstract data structure that can be used by several processes in parallel. To keep its data in a consistent state, calls to its operations (or methods) are executed under mutual exclusion, and there is the possibility of suspending and resuming the caller, depending on the state of the monitor data.

Discussion

Overview

For a brief introduction to axiomatic verification with Hoare logic, see the related entry, Owicki-Gries Method of Axiomatic Verification. Here, the first issue is the verification of sequentially accessed abstract data structures (frequently called classes), and the second the measures that have to be taken to synchronize concurrent calls to monitor operations and make them mutually exclusive.

Hoare Rules for Classes

The Hoare rules for classes are simple. The main requirement is that the data satisfy an invariant I. Imust hold after initialization of the data (e.g., in Java, after each constructor call), possibly, under some...

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 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover 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

Bibliography

  1. Andrews GR (1991) Concurrent programming – principles and practice. Benjamin/Cummings, Redwood City

    Google Scholar 

  2. Brinch-Hansen P (1975) The programming language Concurrent Pascal. IEEE Trans Softw Eng SE-1(2):199–207

    Google Scholar 

  3. Buhr PA, Fortier M, Coffin MH (1995) Monitor classification, ACM Computing Surveys 27(1):63–107

    Article  Google Scholar 

  4. Chiao H-T, Wu C-H, Yuan S-M (2000) A more expressive monitor for concurrent Java programming. In: Bode A, Ludwig T, Karl W, Wismüller R (eds) Euro-Par 2000: parallel processing, Lecture notes in computer science 1900. Springer-Verlag, Heidelberg, pp 1053–1060

    Chapter  Google Scholar 

  5. Dahl O-J (1994) Monitors revisited. In: Roscoe AW (ed) A classical mind, Series in computer science, Chap 6. Prentice Hall International, Hemel Hempstead, pp 93–103

    Google Scholar 

  6. Dahl O-J (2000) A note on monitor versions. In: Davies J, Roscoe AW, Woodcock J (eds) Millennial perspectives in computer science, Cornerstones of computing. Palgrave, Basingstoke, pp 91–97

    Google Scholar 

  7. Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10):576–580, 583

    Article  MATH  Google Scholar 

  8. Hoare CAR (1972) Proof of correctness of data representations. Acta Inform 1(4):271–281

    Article  MATH  Google Scholar 

  9. Hoare CAR (1974) Monitors: An operating systems structuring concept. Commun ACM 17(10):549–557. Corrigendum: 18(2):95

    Article  MATH  Google Scholar 

  10. Howard JH (1976) Proving monitors. Commun ACM 19:273–279

    Article  MATH  Google Scholar 

  11. Howard JH (1976) Signaling in monitors. In: Proceedings of the 2nd international conference on software engineering (ICSE’76), pp 47–52, San Francisco, 1976

    Google Scholar 

  12. Keedy JL (1979) On structuring operating systems with monitors. ACM SIGOPS Oper Syst Rev 13(1):5–9

    Article  Google Scholar 

  13. Lengauer C (1978) On the axiomatic verification of concurrent algorithms. Master’s thesis, Department of Computer Sciences, University of Toronto, August 1978. Technical Report CSRG-94

    Google Scholar 

  14. Lister AM (1977) The problem of nested monitor calls. ACM SIGOPS Oper Syst Rev 11(3):5–7

    Article  Google Scholar 

  15. Owicki SS, Gries D (1976) An axiomatic proof technique for parallel programs. Acta Inform 6(4):319–340

    Article  MATH  MathSciNet  Google Scholar 

  16. Owicki SS, Gries D (1976) Verifying properties of parallel programs. Commun ACM 19(5):279–285

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Lengauer, C. (2011). Monitors, Axiomatic Verification of. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_301

Download citation

Publish with us

Policies and ethics