A process in D3 is a program, subroutine, or job that requires the resources of the D3 system to perform some kind of manipulation of data, and perhaps requires input and produces output. The technical definition of a process is a continuing operation on a set of functional elements (frames).
An internal D3 system routine is a process. A logged on user is a process. A program that a user runs can be considered a process, too. D3 can have multiple processes running at any time to facilitate use of the system.
The maximum number of processes is determined by the system configuration for each site. Processes are normally attached to terminals or personal computers running terminal emulation programs, but also may be attached to other devices such as bar code readers, or may not be attached to any device at all (background or phantom processes). The D3 Monitor controls these processes and services their I/O requests.
A typical interactive process deals with only one terminal. Each process uses the CPU for a certain amount of time called a timeslice and runs D3 Virtual code until:
all of its allocated time is used.
process executes a D3 Monitor call.
disk request frame fault occurs.
Because a D3 Monitor call or frame fault service would use much CPU time that could be used for other processes, system efficiency is better served if the current process is suspended and another process is granted the use of the CPU.
As processes run, eventually a frame is requested that is not in memory. At this point, a frame fault condition occurs. The current process is suspended and the Process Identification Block (PIB) is marked accordingly (waiting for disk). The Monitor goes off to get the frame. Rather than wait for the disk, the Monitor activates another process that was ready and waiting, and lets it execute for its timeslice. Eventually, the Monitor gets a signal from the disk drive that the frame is in and the PIB status of the first process is changed to ready and waiting.
See Also