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