5.0 INTERNAL DESIGN
This section provides an overview of the internal design of the system.
It is currently incomplete.
5.1 System Modules
A brief description of each of the basic modules in the system is given.
The design relies heavily on the relative independence of each module and on autonomous demons for controlling asynchronous functions.
5.1.1 Traffic Controller
The traffic controller has the prime responsibility for scheduling the CPU and core memory.
It decides which processes, among those currently in core, are to be given the CPU and which processes are to be loaded into core.
The traffic controller interacts primarily with the RAD demon and the system job queues.
5.1.2 Scheduler
The scheduler is a module which determines the placement of an activatable process on the queues.
It comes into play from the fault handler or the event demon.
In the most general case it is aware of system loading and service classes to make its decisions.
5.1.3 Fault Handler
The fault handler accepts CALS and hardware traps and interprets them.
It makes the judgment as to whether the trap is a page fault, a system call, a user CAL or exception trap, or just normal clean and dirty logic.
5.1.4 Event Demon
The event demon stores all processes which are blocked for various reasons; hence, all processes in the system job queues are immediately activatable when the unblocking event occurs, the event demon calls the scheduler to place the process on the queues.
This is done implicitly through a forking operation.
5.1.5 Clock Demon
The clock demon handles clock interrupts and performs CPU and core occupancy charging functions.
It detects quantum overflow and causes the running process to be rescheduled.
It also detects the presence of terminal activity from the 620 and clocking conditions based on calendar time, notifying the appropriate demon to process the event.
5.1.6 Terminal Demon
The terminal demon performs the basic terminal I/O and buffer management operations.
The exact division of labor between the Sigma 7 and Tymnet has not been decided.
5.1.7 RAD Demon
The RAD demon schedules the transfer of data between core memory and the PAD.
It operates as an interrupt driven process from a set of input and output queues.
It fills in free time by writing dirty pages to the RAD.
5.1.8 Disc Demon
The disc demon handles the traffic between disc, core, and RAD.
Sophisticated versions will worry about optimizing arm motion, anticipation of page needs and demotion of RAD pages to disc.
5.1.9 I/O Processes
Unit record peripherals will be driven by user mode processes which have the privilege of locking pages in core and specifying channel command sequences.
5.1.10 Accounting Demon
The accounting demon is a low priority program which handles buffering of accounting data collected by various system modules into the accounting file.
5.1.11 Prime Process
The prime process is the original creator of all the user processes in the system.
When log-in occurs, the user is identified by his terminal buffer identifier, a gate to his executive and a key to the root of his permanent directory structure.
The prime process forks off the executive and the user is ready to go.