NUCLEUS: Difference between revisions

From NDWiki
Jump to navigation Jump to search
m (Changed function list to use bullets, removed <br>)
m (Fixed some formatting and linking)
Line 1: Line 1:
NUCLEUS is a library for fast message passing on ND-500-II or ND-5000 computers. It can be used for message passing both in the ND-100 and in the ND-500/5000, but is not available on pure ND-100 computers: NUCLEUS requires either an ND-5000 with [[OCTOBUS]] and a [[DOMINO]] controller and MPF-5 aka MF-Bus memory, or an ND-500-II with OCTOBUS alone (DOMINO is not available for ND-500)<ref>DOMINO and NUCLEUS Software Guide ND-820026.1, preface</ref>.
'''NUCLEUS''' is a library for fast message passing on [[ND-500-II]] or [[ND-5000]] computers. It can be used for message passing both in the [[ND-100]] and in the ND-500/5000, but is not available on pure ND-100 computers: NUCLEUS requires either an ND-5000 with [[OCTOBUS]] and a [[DOMINO]] controller and [[MPF-5]] aka MF-Bus memory, or an ND-500-II with OCTOBUS alone (DOMINO is not available for ND-500)<ref>DOMINO and NUCLEUS Software Guide ND-820026.1, preface</ref>.


=NUCLEUS purpose=
=NUCLEUS purpose=

Revision as of 06:33, 20 September 2009

NUCLEUS is a library for fast message passing on ND-500-II or ND-5000 computers. It can be used for message passing both in the ND-100 and in the ND-500/5000, but is not available on pure ND-100 computers: NUCLEUS requires either an ND-5000 with OCTOBUS and a DOMINO controller and MPF-5 aka MF-Bus memory, or an ND-500-II with OCTOBUS alone (DOMINO is not available for ND-500)[1].

NUCLEUS purpose

NUCLEUS is intended for communication between processes within one computer. Unlike XMSG, it cannot be used between computers. "Computer" in this context means one or several main CPUs with access to the same physical memory and OCTOBUS.

NUCLEUS components

Kernel

NUCLEUS data structures / messages are passed through shared memory (MPM), and managed via OCTOBUS.

Library

Applications will interface to the NUCLEUS kernel through libraries. Applications are isolated from the physical implementation of NUCLEUS which differs between ND-500 and ND-5000.

Monitor

The NUCLEUS monitor is a tool for inspection of parts of the NUCLEUS kernel, e.g. message queues.

NUCLEUS concepts

Communication between processes is based on ports and messages. Ports and messages have descriptions in physical memory (the NUCLEUS kernel). A port is a defined communication port between processes, and it can be given a name. A message is constructed as a buffer for data, and a header. The header may contain e.g. a description of the data, and it can also link to other messages.

An application can create a message, and then link it to a port. The port could be owned by another process. Messages are queued in the sequence they arrive.

Difference between ND-500 and ND-5000

Due to the DOMINO I/O controllers used in ND-5000, time-critical parts of NUCLEUS messaging does not have to go through the ND-100 (via a monitor call), so NUCLEUS communication between ND-5000 processes is faster and has less overhead than communication between ND-500 processes. ND-5000 CPUs have NUCLEUS support in the microcode for the time-critical functions[2].

NUCLEUS functions

  • nkCrePort – Create a new port. The creating process becomes port owner.
  • nkCreName – Assign a name to a port, so that other processes can refer to it.
  • nkOpenPort – Get a send reference to a named port.
  • nkOpenReturnPort – Get a send reference to the home port or last sender of a message.
  • nkDelName – Delete the symbolic name of a port. The port itself is not removed.
  • nkCreMessage – Allocate a message buffer in a contiguous area of physical memory.
  • nkMove – Write, read, or insert data into or from a message buffer.
  • nkSend – Send a message to a port.
  • nkReceive – The first message in the queue to a port is received.
  • nkGetInfo – Get information about the specified message or port.
  • nkClose – Close a port, a message, or a send reference.
  • nkVersion – Get version of different NUCLEUS parts (kernel, library..).

References

  1. DOMINO and NUCLEUS Software Guide ND-820026.1, preface
  2. DOMINO and NUCLEUS Software Guide ND-820026.1, NUCLEUS Overview