Industry Demands More Processing Power For
• Drug Design
• To simulate engineering model
• To general complex graphics in computer application
• To process large amount of historical data and predict future trend
• To predict financial and economical trends
Limitations of Single Processor Machine
• Clock speed can not be increase further.
• In Digital circuit maximum signal speed is as much as light speed.
• More speed generate more heat.
A multiprocessor system is an interconnection of two or more CPUs with memory and
input output equipment.
A multiprocessor system is an
interconnection of two or more CPUs
with memory and input output
Support concurrent operations.
A multicomputer system consists of
several autonomous computers
interconnected with other by means of
Support concurrent operations.
A multiprocessor system is controlled by one operating system that provides
interaction between processors and all the components of the system cooperate in the
solution of a problem.
Multiprocessor System Benefits
Multiprocessing improves the reliability of the system so that a failure or error in one
part has a limited effect on the rest of the system. If a fault causes one processor to
fail, a second processor can be assigned to perform the functions of the disabled
Improved System Performance
The system derives its high performance from the fact that computations can proceed
in parallel in one of two ways.
1. Multiple independent jobs can be made to operate in parallel.
2. A single job can be partitioned into multiple parallel tasks.
Memory Organization in Multiprocessors
Multiprocessors are classified by the way their memory is organized.
Shared Memory / Tightly Coupled Multiprocessor
A multiprocessor system with common shared memory is classified as a shared memory or
tightly coupled multiprocessor.
Tightly Coupled System
Loosely Coupled System
In loosely coupled system, each processor element has its own private local memory. The
processors are tied together and communicate with one another through a message passing
Loosely Coupled System
Inter processor Communication and Synchronization
Inter processor Communication
Communication refers to the exchange of data between different processors. Processors in a
multiprocessor system must be provided with a facility for communicating with each other. A
communication path can be established through common input-output channels. In a shared
memory multiprocessor system, the most common procedure is to set aside a portion of
memory that is accessible to all processors. The primary use of the common memory is to act
as a message center similar to mailbox, where each processor can leave messages for other
P1 P2 P3
Data for other processors
When two processes try to access shared data simultaneously, it will leave data in abnormal
condition this situation is known as race condition.
Mutual Exclusion with a Semaphore(Synchronization)
A properly functioning multiprocessor system must provide a mechanism that will guarantee
orderly access to shared memory and other shared resources. This is necessary to protect
data from being changed simultaneously by tow or more processors. This mechanism has
been termed mutual exclusion.
Mutual exclusion must be provided in a multiprocessor system to enable one processor to
exclude or lock out access to a shared resource by other processors when it is in a critical
section. A critical section is a program sequence that, once begun, must complete execution
before another processor accesses the same shared resource.
A binary variable called a semaphore is often used to indicate whether or not a processor is
executing a critical section. A semaphore is a software controlled flag that is stored in a
memory location that all processors can access. When the semaphore is equal to 1, it means
that a processor is executing a critical program, so that the shared memory is not available to
other processors. When the semaphore is equal to 0, the shared memory is available to any
What is Cache?
Cache Memory : “A computer memory with very short access time used for storage of frequently
used instructions or data” – webster.com
Cache memory function:
• an extremely fast memory that is built into a computer’s central processing unit (CPU),
or located next to it on a separate chip.
• The CPU uses cache memory to store instructions that are repeatedly required to run
• When the processor needs to read from or write to a location in main memory, it first
checks whether a copy of that data is in the cache
Cache in multiprocessor system issues
Since all the processors share the same address space, it is possible for more than one
processor to cache an address at the same time.(coherence issue)
If one processor updates the data item without informing the other processor, inconsistency
may result and cause incorrect execution.(consistency issue)
Cache Coherence Problem
Step 1 Processor P1 reads X
Step 2 Processor P2 reads X
Step 3 Processor P3 reads X
Step 4 Processor P1 writes 120 to X. With write- through policy updated in memory.
Step 5 Processor P2 read X from cache. Inconsistent Value.
Step 6 Processor P3 read X from cache. Inconsistent Value.
Unacceptable: leads to incorrect program execution.
Solution to Cache Coherence Problem
A simple scheme is to disallow private caches for each processors and have a shared cache
memory associated with main memory. Every data access is made to the shared cache. This
method violates the principle of closeness of CPU to cache and increases the average memory
Allow only non shared and read only data to be stored in caches. This method introduces extra
software overhead that may degrade performance.
Bus snooping protocols : Used in bus-based systems where all the processors observe memory
transactions and take proper action to invalidate or update the local cache content if needed.
Parallel Processing Concepts
Parallel processing is the simultaneous execution of the same task, split into subtasks, on
multiple processors in order to obtain results faster. The idea is based on the fact that the
process of solving a problem can usually be divided into smaller tasks, which may be solved
out simultaneously with some coordination mechanisms.
In order to explain what is meant by parallelism inherent in the solution of a problem, let us
discuss an example of submission of electricity bills. Suppose there are 10000 residents in a
locality and they are supposed to submit their electricity bills in one office.
Let us assume the steps to submit the bill are as follows:
1) Go to the appropriate counter to take the form to submit the bill.
2) Submit the filled form along with cash.
3) Get the receipt of submitted bill.
Assume that there is only one counter with just single office person performing all the tasks
of giving application forms, accepting the forms, counting the cash, returning the cash if the
need be, and giving the receipts.
This situation is an example of sequential execution. Let us the approximate time taken by
various of events be as follows:
Giving application form = 5 seconds
Accepting filled application form and counting the cash and returning, if required = 5mnts,
i.e., 5 ×60= 300 sec.
Giving receipts = 5 seconds.
Total time taken in processing one bill = 5+300+5 = 310 seconds.
Now, if we have 3 persons sitting at three different counters with
i) One person giving the bill submission form
ii) One person accepting the cash and returning,if necessary and
iii) One person giving the receipt.
The time required to process one bill will be 300 seconds because the first and third activity
will overlap with the second activity which takes 300 sec. whereas the first and last activity
take only 10 secs each. This is an example of a parallel processing method as here 3 persons
work in parallel. As three persons work in the same time, it is called temporal parallelism.
However, this is a poor example of parallelism in the sense that one of the actions i.e., the
second action takes 30 times of the time taken by each of the other.