A queue of requests is associated with each device and the scheduling
is taken to be FCFS (First Come First Served). All service times
are assumed to be exponentially distributed. When a command is
generated, the user at the terminal who generated
the command remains inactive until the system
responds. Symbolically, a user having generated a command enters the
CPU queue. The behavior of the process in the system is characterized by a
compute time followed either by a page fault, after which the process enters
the SM queue, or an input/output (file request) in which case the process
enters the FD queue. Processes which terminate their service at the SM or
FD queue return to the CPU queue. Symbolically, completion of a command
is represented by the departure of the process from the CPU to the terminals.
The degree of multiprogramming at any time is given by eta = n_0 +
n_1 + n_2, where n_0, n_1 and n_2 are respectively
the number of processes in the CPU, SM and FD queues at that moment.

The following transition rates are used. They are assigned in the
subroutine rate in the source code file,
ncd.f.