WoTUG - The place for concurrent processes

Paper Details

  title = "{H}igher {L}evels of {P}rocess {S}ynchronisation",
  author= "Welch, Peter H. and Wood, David C.",
  editor= "Bakkers, Andr\`{e} W. P.",
  pages = "104--129",
  booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava",
  isbn= "90 5199 336 6",
  year= "1997",
  month= "mar",
  abstract= "Four new synchronisation primitives (SEMAPHOREs, RESOURCEs,
     EVENTs and BUCKETs) were introduced in the KRoC 0.8beta
     release of occam for SPARC (SunOS/Solaris) and Alpha (OSF/1)
     UNIX workstations. This paper reports on the rationale,
     application and implementation of two of these (SEMAPHOREs
     and EVENTs). Details on the other two may be found on the
     web. The new primitives are designed to support higher-level
     mechanisms of SHARING between parallel processes and give us
     greater powers of expression. They will also let greater
     levels of concurrency be safely exploited from future
     parallel architectures, such as those providing (virtual)
     shared-memory. They demonstrate that occam is neutral in any
     debate between the merits of message-passing versus
     shared-memory parallelism, enabling applications to take
     advantage of whichever paradigm (or mixture of paradigms) is
     the most appropriate. The new primitives could be (but are
     not) implemented in terms of traditional channels, but only
     at the expense of increased complexity and computational
     overhead. The primitives are immediately useful even for
     uni-processors -- for example, the cost of a fair ALT can be
     reduced from O(n) to O(1). In fact, all the operations
     associated with new primitives have constant space and time
     complexities; and the constants are very low. The KRoC
     release provides an Abstract Data Type interface to the
     primitives. However, direct use of such mechanisms still
     allows the user to misuse them. They must be used in the
     ways prescribed below else else their semantics become
     unpredictable. No tool is provided to check correct usage at
     this level. The intention is to bind those primitives found
     to be useful into higher level versions of occam. Some of
     the primitives (e.g. SEMAPHOREs) may never themselves be
     made visible in the language, but may be used to implement
     bindings of higher-level paradigms (such as SHARED channels
     and BLACKBOARDs). The compiler will perform the relevant
     usage checking on all new language bindings, closing the
     security loopholes opened by raw use of the primitives. The
     paper closes by relating this work with the notions of
     virtual transputers, microcoded schedulers, object
     orientation and Java threads."

If you have any comments on this database, including inaccuracies, requests to remove or add information, or suggestions for improvement, the WoTUG web team are happy to hear of them. We will do our best to resolve problems to everyone's satisfaction.

Copyright for the papers presented in this database normally resides with the authors; please contact them directly for more information. Addresses are normally presented in the full paper.

Pages © WoTUG, or the indicated author. All Rights Reserved.
Comments on these web pages should be addressed to: www at wotug.org

Valid HTML 4.01!