You are on page 1of 2

Question 2. Differentiate between multiprocessors and multicomputers.

Answer. MULTIPROCESSORS - A multiprocessor has a memory system that is addressable by each


processor. As such, the memory system consists of one or more memory modules whose address space is
shared by all the processors. Based on the organization of the memory system, the multiprocessors can be
further divided into two groups, tightly coupled and loosely coupled. In a tightly coupled multiprocessor, a
central memory system provides the same access time for each processor. This type of central memory
system is often called main memory, shared memory, or global memory. The central memory system can be
implemented either as one big memory module or as a set of memory modules that can be accessed in
parallel by different processors. The latter design reduces memory contention by the processors and makes
the system more efficient. Memory contention refers to situations where many processors request access to
memory within a very short time interval, resulting in unreasonable memory access delays. In addition to the
central memory system, each processor might also have a small cache memory. (A cache memory is a fast
type of memory that sits between the processor and the interconnection to main memory in order to make the
accessing faster.) These caches also help reduce memory contention and make the system more efficient. In a
loosely coupled multiprocessor, in order to reduce memory contention the memory system is partitioned
between the processors; that is, a local memory is attached to each processor. Thus each processor can
directly access its own local memory and all the other processors' local memories. However, the access time
to a remote memory is much higher than to the local memory.

The operating system provides interaction between processors and their tasks at the process and data element
level. (The term process may be defined as a part of a program that can be run on a processor.) Each
processor is capable of doing a large task on its own. The processors are usually of the same type. A
multiprocessor that has the same processors is called homogeneous; if the processors are different, it is called
heterogeneous. Any of the processors can access any of the I/O devices, although they may have to go
through one of the other processors.

Advantages : increase throughput, economy of scale and increased reliability. Multiprocessing is the use of
two or more central processing units within a single computer system.

Disadvantages: If we divide functions among several processors, then if one processor fails then it will not
affect the system or we can say it will not halt the system, but it will affect on the work speed. Suppose I
have five processors and one of them fails due to some reasons then each of the remaining four
processors will share the work of failed processor. So it means that system will not fail but definitely
failed processor will affect on its speed. Another significant disadvantage of a multiprocessor system
over one using a single single-core processor is a considerably more complex hardware and software
design, as algorithms and tasks need distributing among the cores and processors to maximise the
benefit of parallel processing, while an effort to synchronise access to shared resources such as main
memory and most I/O devices is required.

MULTICOMPUTERS - In a multicomputer architecture, a local memory (also called private memory) is


attached to each processor. Each processor, along with its local memory and input/output port, forms an
individual processing unit (node). That is, each processor can compute in a self-sufficient manner using the
data stored in its local memory. The processing units are usually of the same type. A multicomputer that has
the same processing units is called homogeneous; if the processing units are different, it is called
heterogeneous. In a multicomputer, a processor only has direct access to its local memory and not to the
remote memories. If a processor has to access or modify a piece of data that does not exist in its local
memory, a message passing mechanism is used to achieve this task. In a message-passing mechanism, a
processor is able to send (or receive) a block of information to (or from) every other processor via
communication channels. The communication channels are physical (electrical) connections between
processors and are arranged based on an interconnection network topology. Each processor is connected to a
communication channel by a device called a communication interface. The communication interface is able
to transmit and receive data through a communication channel. It may also be able to perform functions to
ensure that the data are sent and received correctly. Before a block of information is sent over a channel, it is
packaged together in a message with a header field at the beginning and a checksum field at the end. The
header field consists of identification information, including the source address, destination address, and
message length. The checksum field consists of several bits for detection of occasional transmission errors.
The communication interface, in some implementations, is able to create and decode such header and
checksum fields.

Multicomputers are message-passing machines which apply packet switching method to exchange data.
Here, each processor has a private memory, but no global address space as a processor can access only its
own local memory. So, communication is not transparent: here programmers have to explicitly put
communication primitives in their code.
Having no globally accessible memory is a drawback of multicomputers. This can be solved by using the
following two schemes −
Virtual Shared Memory (VSM)
Shared Virtual Memory (SVM)
In these schemes, the application programmer assumes a big shared memory which is globally addressable.
If required, the memory references made by applications are translated into the message-passing paradigm.

Virtual Shared Memory (VSM)


VSM is a hardware implementation. So, the virtual memory system of the Operating System is transparently
implemented on top of VSM. So, the operating system thinks it is running on a machine with a shared
memory.

Shared Virtual Memory (SVM)


SVM is a software implementation at the Operating System level with hardware support from the Memory
Management Unit (MMU) of the processor. Here, the unit of sharing is Operating System memory pages.
If a processor addresses a particular memory location, the MMU determines whether the memory page
associated with the memory access is in the local memory or not. If the page is not in the memory, in a
normal computer system it is swapped in from the disk by the Operating System. But, in SVM, the Operating
System fetches the page from the remote node which owns that particular page.

You might also like