Forward and backward link bytes are used to maintain a data structure called a linked list, which can be envisioned as links in a chain. Each link is attached to two other links—one in front and one behind.
The different hardware devices (serial ports, disk drives, tape drives, and so on) are referenced through the D3 Monitor that passes the I/O requests to the host device drivers.
The Monitor is the control portion of D3. It handles the hardware resources of the machine or passes requests to the host operating system and services requests for these resources from the D3 Virtual Machine.
The D3 Virtual Machine is based on a system that uses Virtual Memory. Virtual Memory is like a vast source of RAM. The Monitor manages the hardware RAM as a series of buffers or blocks of RAM that hold one frame each. Therefore, after the Monitor is loaded in RAM, any additional RAM is used as buffers.
D3 services requests for frames by the D3 Virtual Machine as follows. When the Virtual Machine requests a frame, the Monitor scans through all the frames currently in RAM to see if the requested frame already exists in a buffer. If it does, the Monitor hands the buffer over to the Virtual Machine. If it does not, a frame fault condition occurs. The Monitor goes to the disk, retrieves the frame, and places it in a buffer. It then releases the buffer over to the Virtual Machine for its use.
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).
The Pib is the ID badge for each user. It tells the system all the internal administrative information it needs to track, such as what account the user is in, what kind of permissions are allowed, and how much time has been used.
The two kinds of processes that vie for a place in the system resources queue are user processes and phantom processes. The user process is associated with a serial port or a networked device and is expected to require some kind of input/output through that port. An example is a simple data entry program run on a dumb terminal.
In a single user system such as MS-DOS, the user has all of the computer system available all of the time. In a multiuser system, resources must be shared with many users. This is accomplished by giving one user the entire resources of the system for a short time, then stopping the job in process, saving the current state of the job, loading another user’s job, and continuing. Some time later, the first user’s job is recalled and processed a bit more. Eventually, each user’s job gets done.
The Monitor maintains a queue of processes currently in the system. Only one job is active and the others are paused, awaiting the services of the CPU. The processes in the queue are maintained in increasing order of priority, with the head of the queue having the highest priority.
One process in the System may be designated the Super High Priority Process (SHPP) in order to receive special handling in the process scheduling mechanism. The SHPP has top priority to all system resources, allowing it to run without interference from other processes. This is implemented for BISYNC communications.