RELATED DOCUMENTATION
OPERATING SYSTEM STRUCTURE PROCESS
A process is an independent thread of execution for a program. It carries with it the context (that is, the processor registers) necessary to that thread. One or more processes are created each time a program is scheduled for execution. The operating system assigns each process a priority to schedule its execution appropriately: priorities range from 1 (highest) to 255 (lowest/ null).
System service processes are processes that man- age system resources. All processes, including system service processes, are scheduled for exec- ution in the same way based on their assigned priority.
KERNEL
The Kernel is the most primitive yet most power- ful component of the operating system. It provides
• event-driven priority scheduling • Interprocess Communication (IPC) • Inter-CPU Communication (ICC)
Event-Driven Priority Scheduling
To meet the need for high performance, the oper-
ating system Kernel provides efficient
event-driven priority scheduling.
Each process is assigned one of 255 priorities and is scheduled for execution based on that priority. Whenever an event, such as the com- pletion of an I/O operation, makes a higher priority process eligible for execution, re- scheduling occurs immediately. This results in a more responsive system than scheduling tech- niques that are entirely time-based.
Interprocess Communication (IPC)
The Kernel's IPC primitives, such as Request and Wait (or Check), are the primary building blocks for synchronizing process execution and trans- mitting information between processes.
Messages and Exchanges. A process can send a message, wait for a message, or poll (check) for a message. When a process waits for a message, its execution is suspended until a message is sent to it, thus allowing processes to synchro- nize execution. A process can also check to determine if a message is available without suspending its execution.
The operating system is message-based. When a process sends a message, it actually sends the message to an exchange rather than directly to another process. Exchanges function as message centers where processes send messages or pro- cesses wait or check for messages. Within a single processor, overhead is minimized, because only the address of the message is moved, not the message itself.
A single process can serve several exchanges, in which case it can select one of several kinds of messages to process next. This feature can be used to set priorities for the work the process is to perform.
Also, several processes can serve the same ex- change, thereby sharing the processing of a single kind of message.
System Service Processes. The operating system includes a number of system service processes. A system service process receives IPC messages to
request the performance of its services.
Examples of operating system services include opening or closing disk files, sending output to a printing device, or accepting keyboard input. A process requesting a system service is a client process. Any process, including another system service process, can be a client. The use of system service processes and the formalized interface provided by IPC results in a highly modular environment that increases reliability and flexibility.
System services can be linked-in system services in the operating system. The file management system and the keyboard services are examples.
A system service also can be dynamically instal- lable. The Queue Manager and CT-Mail are exam- ples. Once installed, a dynamically installable system service is indistinguishable in operation from a linked-in service.
Each of the functions provided by the system service can be accessed by a procedural call from a high-level language, such as Pascal or C, as well as from assembly language. The request procedural interface masks all the complexities of using IPC: it automatically uses a default response exchange and builds the request block message on the stack of the client process.
Kernel primitives also can be called directly. This allows an increased degree of concurrency between multiple I/O operations and computation. The calling process, for example, can perform calculations while it is waiting for other data to be written to a disk file.
Filters. You can customize the function of a system service by writing a filter for that service.
A filter intercepts messages destined for another system service. It may modify the effect of the messages, but it does not modify either the call- ing process or the system service for which the messages were intended.
Inter-CPU Communication (ICC)
The ICC facility provides for communication be- tween CPUs among the different processor boards on the SRP. ICC is an extension of IPC.
If the requested system service is on the same SRP processor board as the client process, the Kernel uses IPC. If, however, the service is on a different processor board, the Kernel uses ICC. ICC passes request and response messages between processor boards.
The SRP is compatible with the workstations at the request level. Whether your program runs on an SRP or on a workstation, your program can access system services in the same way (that is, either by using the request procedural interface or by calling the Kernel primitives).