1 Introduction

The noticeboard system routines provide a fast means for processes to share data in global memory. A given process may own as many noticeboards as it wishes and may access noticeboards owned by other processes. Normally the only process that writes to a noticeboard is its owner but other processes that know what they are doing can subvert this rule either by calling a special routine or else by accessing noticeboard data by using a pointer.

The original interfaces were defined at the AAO workshop in October 1985. V1.0 was implemented in C by William Lupton at RGO in January 1986. The changes for V2.3 onwards were made by David Allan at the University of Birmingham. Refer to Section 7.1 for details.

Noticeboards are identified by name and each can contain a hierarchy of items. Each item has a name, a type, a structure / primitive attribute, and, if primitive, a maximum number of dimensions, a maximum number of bytes, a current shape and a current value. The type and shape are not used by the routines but their values can be put and got and they can be used when implementing higher-level routines on top of the noticeboard routines. Noticeboards are self-defining — a process can find and access data from a noticeboard without knowing anything about what it contains.