1 Introduction

This document describes the version 1.6 of the process library in the Mjølner System. This library implements support for manipulating operating system processes and for communicating with them. All fragments in the process library demand that the program uses the BETA simulated concurrency, i.e. the slot program:descriptor must be a specialization of systemenv. In return, one does not have to explicitly transfer the thread of control by suspending when an operation is about to block - the systemenv scheduler and the process library cooperate to make it look like implicit scheduling. This ensures that co-routines which can proceed with their work will never be prevented from this because of a blocking communication operation in some other co-routine.

The fragment dealing with the manipulation of processes is processmanager. Processmanager supports starting a child process, stopping it, and similar things.

The fragments dealing with communication between processes are basicsocket, streamsocket, socketgenerator and a few variations hereof.

Some aspects of support for the communication between processes have been separated into the fragments commaddress and errorcallback. commaddress defines a hierarchy of patterns, which model addresses (destinations for communications) in a platform independent way. errorcallback defines a few patterns used for error handling in this library.

On top of the support for single communication connections, commpool implements support for holding a set of connections, and providing concurrency-secure access to these connections by means of platform independent addresses, i.e. instances of patterns in commaddress. This abstracts away the need to open and close these connections: if connections to the required destination is available, one of them will be used, otherwise a new connection will automatically be opened. If the process hits a maximum limit for the number of open connections, a least recently used (and currently unused) connection will be closed.

Process Libraries - Reference Manual
© 1994-2002 Mjølner Informatics
[Modified: Friday October 20th 2000 at 14:22]