Hardware
Models
The Workstation-Server Model
In
the Workstation-Server Model the distributed system is composed of a network of
workstations where each workstation provides local processing capability and an
interface to the network. The model associates a workstation with each user of
the system from which local and/or remote processing can be initiated. Some
workstations may be assigned dedicated roles as file servers, print servers,
time servers, name servers or secure authentication servers. Workstations may
be diskless, depending only on the communication interface and the operating
server nodes to obtain various system services.
Diskless
workstations have many advantages. They are cheap, quiet and easy to maintain.
Backing up the disks on a single file server is simpler than backing up a
collection of individual disks. It also means the file system on every
workstation looks the same for each user when they log on, which facilitates
user mobility.
Diskless
workstations place a burden on the communication system and centralized file
services can result in a bottleneck which mitigates against scale. Sometimes a
local disk is useful because it can be used to store frequently used
executables in the form of a cache or it can be used to store temporary files
generated during file processing applications or it could store virtual memory
pages locally improving performance.
In
the Workstation-Server Model, idle workstations can be used to improve
performance by sending them work which can be done in parallel with other
activities.
In
Unix systems a remote shell command allows a process to be started by a remote
shell on a chosen workstation. The format of the command is "rsh machine
command". Notice that the user must identify the chosen machine. This
places responsibility on the user for identifying idle workstations and also for
keeping track of all machine names. The process cannot be removed until it is
finished without destroying its computation. The process must also work in the
environment of the remote machine, including a possibly different file system.
What
we would like is simply to execute "command" at our workstation and
have the system automatically find an idle workstation and run the process
there providing a seamless environment for it. To this end, modern efforts at
enabling remote computation concentrate on how to find/identify an idle
workstation, how to migrate a process elsewhere when required and how to
achieve this in a transparent way so that the process's computation is not
affected by system activity.
The Processor Pool Model
A
processor pool consists of a large bank of CPUs each with its own local memory
or possibly operating with shared memory. In this model, all processing is done
by the processor bank, with users initiating computation through graphics
terminals. Other operating system services may be provided by dedicated server
machines. User processes are submitted to the processor pool which can
dynamically allocate the necessary number of CPUs to perform the task. This is
quite similar to the traditional timesharing approach except the processor bank
is composed of low-cost microprocessors and can be expanded as required. There
is another cost benefit in that only cheap X terminals need be supplied to the
user and there are maintenance advantages similar to those for diskless
workstations.
The
main argument for the processor pool model comes from queuing theory.
If
the average number of requests per second to a system is l and it can process m requests per second then it can be proven
that the mean time between issuing a request and getting a complete response, T, is related to l and m by the formula:-
m
- l 1
T =
Of
course m must be greater than or
equal to l for the system to be able
to cope with the load.
Now
if we take n processors, each with its own queue then we get:-
T
CPU1
l
m
T
CPU2
l
m
T
CPUn
l
m
where
m
- l 1
T =
for
each processor.
Now
if we combine the processors into a processor pool with a single queue we get:-
T1
_ _ _ _ _ _
nl
nm processor pool
where
T
n nm
- nl 1
T1
= = i.e a Faster Mean
Response Time
Assuming
of course that all processors can be made equally busy all of the time.
Which Model is Best?
The
choice of architectural model depends on the nature of the workload. Algorithms
with a large amount of inherent parallelism such as simulations would be better
suited to executing on closely coupled parallel architectures. If the primary
use of the system is for resource sharing or supporting integrated personal
productivity applications, or providing fault tolerance then the workstation
model is more suited.
A
hybrid based on both models, i.e. personal workstations with a processor pool
resource available for intensively parallel computations may be a suitable
solution.