Different processes work together when a UTM application program running on a Unix or Linux system is executed, whereby each process performs specific tasks. These process types are described below. An overview is provided in figure 44.
Main process and work processes
A UTM application is started by the utmmain program. This program is generally started as a background process known as the main process. The main process then creates as many work processes as are specified in the start parameters. The application program created by the user is loaded and started in all of these work processes.
The work processes perform the actual work, i.e. they handle the service requests sent to the UTM application. The main process monitors these productive processes. During the application run, the main process automatically creates further work processes if a work process is terminated due to an error or if additional work processes are explicitly allocated to the application by administration.
After the application start, all the work processes of the UTM application wait for jobs in a shared process queue. If a job arrives, it is assigned to a work process waiting in the queue. This process handles the job and then rejoins the process queue.
If more jobs exist than work processes, a job queue is established. Both the job queue and process queue are application-related, i.e. each application has its own process queue and job queue. The queues for processes are implemented by semaphores, while the queues for jobs are implemented by a shared memory.
Timer process
In addition to the work processes, the main process sets up a timer process which is assigned to the application. The timer process accepts jobs from the work processes in order to time the wait states, and arranges these jobs in a job queue. After one of the times recorded in the job queue expires, this is indicated to the work processes for processing.
Network processes
With distributed processing, UTM applications are connected to the network via network processes. The task of these processes is to process connection requests and manage the data transfer on this connection.
The network connection can run via PCMX or directly through the socket interface. The number of network processes depends on the generation.
For further information on network processes and for details on generation, see the openUTM manual “Generating Applications”. |
Dialog terminal processes (DTPs)
Each terminal which works with the UTM application has its own dialog process, known as the dialog terminal process. This is created neither by the main process nor a work process, rather is established from the shell by starting the utmdtp program or is started automatically when the user successfully logs on to the Unix or Linux system.
The terminal user selects the UTM application, thereby establishing a connection between the dialog terminal process and the UTM application. The dialog terminal process can then send jobs to the UTM application and receive messages from the UTM application.
Local client processes
A separate local client process exists for each UTM client that is based on the UPIC carrier system and works with the UTM application. These processes are created neither by the main process nor by the work process but from the shell.
The local client process establishes a connection to the UTM application. The local client process can then send jobs to the UTM application and receive messages from the UTM application.
Printer processes
Asynchronous messages to printers are output by the UTM application using local processes known as printer processes. The main process of the UTM application sets up a printer process for each connected printer. The printer process for a printer exists for as long as this printer is connected to the UTM application.
Logging process
openUTM can record certain data such as accounting records or event data while the application is running. The recording of data is controlled by the logging process (utmlog).
When generated, openUTM provides accounting information during the application run. This information is recorded in "accounting records" by openUTM and forwarded to the logging process. The logging process writes these records in a file in the ACCNT subdirectory.
The UTM event monitor KDCMON functionality integrated into openUTM is available to monitor the performance of an openUTM application. After starting the KDCMON monitor, the work processes record the event data and pass it to the logging process, which then writes the data records in a file in the KDCMON subdirectory. The task of administering this data is then moved from the work processes to a single instance, the logging process.
Overview: Processes of a UTM application on Unix and Linux systems
Figure 44: Process interaction in a UTM application on Unix and Linux systems