Experience with processes and monitors in Mesa

The use of monitors for describing concurrency has been much discussed in the literature. When monitors are used in real systems of any size, however, a number of problems arise which have not been adequately dealt with: the semantics of nested monitor calls; the various ways of defining the meaning of WAIT; priority scheduling; handling of timeouts, aborts and other exceptional conditions; interactions with process creation and destruction; monitoring large numbers of small objects. These problems are addressed by the facilities described here for concurrent programming in Mesa. Experience with several substantial applications gives us some confidence in the validity of our solutions.

[1]  Jerome H. Saltzer,et al.  TRAFFIC CONTROL IN A MULTIPLEXED COMPUTER , 1966 .

[2]  Jerome H. Saltzer,et al.  Traffic control in a multiplexed computer system , 1966 .

[3]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[4]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[5]  Butler W. Lampson,et al.  On the transfer of control between contexts , 1974, Symposium on Programming.

[6]  Per Brinch Hansen,et al.  The programming language Concurrent Pascal , 1975, IEEE Transactions on Software Engineering.

[7]  Thomas H. Bredt,et al.  A structured specification of a hierarchical operating system , 1975, Reliable Software.

[8]  Robert Metcalfe,et al.  Ethernet: distributed packet switching for local computer networks , 1988, CACM.

[9]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[10]  Andrew M. Lister,et al.  An implementation of monitors , 1976, Softw. Pract. Exp..

[11]  John H. Howard Signaling in monitors , 1976, ICSE '76.

[12]  J. G. Mitchell,et al.  Separating data from function in a distributed file system , 1978 .

[13]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[14]  Roger M. Needham,et al.  On the duality of operating system structures , 1979, OPSR.

[15]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.

[16]  James Leslie Keedy On structuring operating systems with monitors , 1979, OPSR.

[17]  Yogen K. Dalal,et al.  Pilot: an operating system for a personal computer , 1980, CACM.

[18]  Robert M. Metcalfe,et al.  Pup: An Internetwork Architecture , 1980, IEEE Trans. Commun..

[19]  David K. Gifford Violet, an Experimental Decentralized System , 1981, Comput. Networks.