NonStop Systems Introduction
The NonStop Kernel
NonStop Systems Introduction—527825-001
6-6
Cooperative Systems
possible for a process running in any processor to access system resources in any 
other processor or input/output location.
Cooperative Systems
As a result of the unique hardware and software design shown in Figure 6-3 on 
page 6-5, a stand-alone NonStop system does not view itself as a monolithic entity. 
Instead, it views itself as a group of processors that function as a single system.  Thus, 
a NonStop system is appropriate for situations where cooperative effort and distribution 
of control are required (as in a network).
NonStop systems are designed to be cooperative. Because of their inherent network 
design, multiple NonStop systems can communicate with each other simply and 
flexibly through facilities that are part of the local operating system in each system.
The networking software that joins NonStop systems is known as the Expand 
subsystem. This software does not present a new world to local users and programs 
but rather a simple extension of facilities provided by the local operating system.
Networking is not layered on top of the operating system. It is built into the operating 
system. No separate network operating system is needed. Together, the Expand 
subsystem and the operating system make possible the decentralized control and 
cooperative effort that characterize NonStop systems. In addition, this combination 
promotes fault tolerance and system expandability. Now consider how the operating 
system provides these features.
Distribution of Control
The operating system embodies in its structure the idea of communication and 
distribution of control among independent entities.  The operating system is not a 
monolithic program but a collection of processes (independent program modules 
running in available processors). These processes cooperate by sending messages to 
each other by means of a common message system.
Processes executed by the operating system are called system processes to 
distinguish them from executing application programs, which are called user 
processes. Each system process has a particular area of responsibility. The most 
basic system processes run independently in every processor. For example, copies of 
the processor monitor and the memory manager run in each processor and control 
process creation and memory allocation for that processor.
However, some system processes, such as I/O processes, are not required to be 
present in each processor. An I/O process, for example, controls a particular physical 
device or set of devices and typically runs in a processor that is physically packaged in 
the same enclosure.
This situation requires that all processors and processes in the system be able to 
access I/O resources anywhere in the system. For example, a user process running in 










