Page 29 - DCAP507_SYSTEM_SOFTWARE
P. 29
Unit 2: Evolution of Operating System
communicate with one another as needed. Some systems use symmetric multiprocessing, in Notes
which each processor is assigned a specific task. A master processor controls the system; the
other processors either look to the master for instruction or have predefined tasks. This scheme
defines a master-slave relationship. The master processor schedules and allocates work to the
slave processors.
Example: An example of the symmetric multiprocessing system is Encore's version of
UNIX for the Multimax computer. This computer can be configured to employ dozens of
processors, all running a copy of UNIX. The benefit of this model is that many processes can run
at once (N processes if there are N CPUs) without causing a deterioration of performance.
However, we must carefully control I/O to ensure that data reach the appropriate processor.
Also, since the CPUs are separate, one may be sitting idle while another is overloaded, resulting
in inefficiencies. To avoid these inefficiencies, the processors can share certain data structures. A
multiprocessor system of this form will allow jobs and resources to be shared dynamically
among the various processors, and can lower the variance among the systems. However, such a
system must be written carefully.
Asymmetric multiprocessing is more common in extremely large systems, where one of the
most time-consuming activities is simply processing I/O. In older batch systems, small processors,
located at some distance from the main CPU, were used to run card readers and line printers and
to transfer these jobs to and from the main computer. These locations are called remote-job-
entry (RJE) sites. In a time-sharing system, a main I/O activity is processing the I/O of characters
between the terminals and the computer. If the main CPU must be interrupted for every character
for every terminal, it may spend all its time simply processing characters. So that this situation
is avoided, most systems have a separate front-end processor that handles all the terminal I/O.
Example: A large IBM system might use an IBM Series/I minicomputer as a front-end.
The front-end acts as a buffer between the terminals and the main CPU, allowing the main CPU
to handle lines and blocks of characters, instead of individual characters. Such systems suffer
from decreased reliability through increased specialization. It is important to recognize that the
difference between symmetric and asymmetric multiprocessing may be the result of either
hardware or software.
Special hardware may exist to differentiate the multiple processors, or the software may be
written to allow only one master and multiple slaves. For instance, Sun's operating system
SunOS Version 4 provides asymmetric multiprocessing, whereas Version 5 (Solaris 2) is
symmetric.
As microprocessors become less expensive and more powerful, additional operating system
functions are off-loaded to slave-processors, or back-ends.
Example: It is fairly easy to add a microprocessor with its own memory to manage a disk
system.
The microprocessor could receive a sequence of requests from the main CPU and implement its
own disk queue and scheduling algorithm. This arrangement relieves the main CPU of the
overhead of disk scheduling. PCs contain a microprocessor in the keyboard to convert the key
strokes into codes to be sent to the CPU. In fact, this use of microprocessors has become so
common that it is no longer considered multiprocessing.
LOVELY PROFESSIONAL UNIVERSITY 23