Pluribus - Software

Software

The Pluribus software implemented MIMD symmetric multiprocessing. Software processes were implemented using non-preemptive multiprogramming. Process scheduling used a hardware device, called the pseudo-interrupt device or PID, that was accessible to both programs and to I/O devices. Each processor ran its own copy of the process scheduler, which would read an integer value from the PID. The value was used to select the process to run. If a program or device needed to signal another process to run, it would write that process' number into the PID. The PID would emit the highest priority process that anyone had requested, and served them out to all processors.

An important aspect of the Pluribus software was the "STAGE" system, which detected system errors and took steps to recover from them. The processor clocks had interrupt handlers which implemented watchdog timers on all processors. If a processor stopped running, another processor would detect it and initiate a recovery. The recovery process would unlock any locks placed on shared resources, release allocated storage, and restart all processing on all processors. This was acceptable on an ARPANET routing node, since any lost packets would eventually be retransmitted.

Read more about this topic:  Pluribus