to be included in OS4000, as the underlying platform performs these functions instead of the operating system. Consequently, there is no provision for running privileged mode code on the platform—all OS4000 operating system code runs as processes. Nucleus supports up to 256 processes, and schedules these automatically using a fixed priority scheme. OS4000 lives entirely within these processes. A set of system tables are used to configure Nucleus, and access to these system tables can be granted to processes which need to alter the configuration of Nucleus, e.g. to load new programs into processes, adjust the Nucleus scheduling for time-shared processes, etc. The system tables tell Nucleus which processes are permitted to communicate with each other, and these are updated as processes are created and destroyed, e.g. when users login and logout. All I/O is performed directly from processes, and the system tables identify which processes have access to which peripherals and handle peripheral interrupts. For example, a device driver for a disk controller is a process, which is responsible for issuing commands through Nucleus to the disk controller, and handling the interrupts passed back from the disk controller via Nucleus, and the system tables will explicitly state that process has access to that disk controller. The system tables will not grant this device driver access to any other peripherals. In the event of a process stopping or crashing, Nucleus looks up its owner process in the system tables, and informs it. The owner process can then take the decision to let the system continue running without that process, or to take out the system (like a Unix panic), or to take some action such as reload and/or restart the process. Functions such as filesystems, store allocation, terminal drivers, timing services, etc. also exist as separate processes. Nucleus implements a segmented memory system, with processes having their access to memory segments defined by the system tables, which is maintained by OS4000. OS4000 provides a memory system which handles both store-resident memory, and virtual memory backed by disk which is known as overlay, with overlaying being performed at the segment level. OS4000 also inherited grouped segments from DOS, where a group of segments were to be overlaid and retrieved as a single group, but this feature was very little used in OS4000. A process may use any mixture of resident and overlayable segments, although a process performing real-time tasks would normally