Puma [105, ] is an operating system specifically designed for high-performance MP architectures. On each node, the systems consists of a minimal kernel (the quintessential kernel), a process control thread (PCT) which is a trusted user-level process that establishes the policies on the node, and the libraries linked with each application.
Puma portals are openings into the applications's address space. Data structures, shared between the kernel and the user determine where incoming messages are to be deposited. The shared data structures consist of a portal table, matching lists, and memory descriptors. With the appropriate combination of these basic building blocks, a user-level process can describe the actions the kernel is to perform upon arrival of a message. Portals allow the construction of most higher-level message passing protocols in user space without costly memory-to-memory copies.
When a message arrives, the data and its header are placed into memory according to the application's specification in the portal structures. If a portal event handler has been installed, then the kernel will transfer control to a user-level master handler. The master handler can be replaced by the application and is responsible to dispatch events to event handlers. This is similar to active messages, except that the data already resides in memory. Invoking the handlers requires a context switch from kernel to user level.