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...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
Andrews GR (1991) Concurrent programming – principles and practice. Benjamin/Cummings, Redwood City
Brinch-Hansen P (1975) The programming language Concurrent Pascal. IEEE Trans Softw Eng SE-1(2):199–207
Buhr PA, Fortier M, Coffin MH (1995) Monitor classification, ACM Computing Surveys 27(1):63–107
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
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
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
Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10):576–580, 583
Hoare CAR (1972) Proof of correctness of data representations. Acta Inform 1(4):271–281
Hoare CAR (1974) Monitors: An operating systems structuring concept. Commun ACM 17(10):549–557. Corrigendum: 18(2):95
Howard JH (1976) Proving monitors. Commun ACM 19:273–279
Howard JH (1976) Signaling in monitors. In: Proceedings of the 2nd international conference on software engineering (ICSE’76), pp 47–52, San Francisco, 1976
Keedy JL (1979) On structuring operating systems with monitors. ACM SIGOPS Oper Syst Rev 13(1):5–9
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
Lister AM (1977) The problem of nested monitor calls. ACM SIGOPS Oper Syst Rev 11(3):5–7
Owicki SS, Gries D (1976) An axiomatic proof technique for parallel programs. Acta Inform 6(4):319–340
Owicki SS, Gries D (1976) Verifying properties of parallel programs. Commun ACM 19(5):279–285
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-0-387-09766-4_301
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering