Page 40 - DCAP103_Principle of operating system
P. 40
Unit 1: Operating System
each other directly, regardless of how many there are in the system. People commonly confuse Notes
these architectures and as such it is important to define the differences.
1.9 Software ASMP
1.9.1 Overview
Asymmetric multiprocessing as opposed to asymmetrical multiprocessors is the term that
refers to software side ASMP. In software each program or application is a process ASMP
for software means that all tasks/processes are unique. Thus a given task such as your
operating system or favourite game would be assigned to a certain processor. In a more
general context “a certain task not runs on every processor. “It is common for application
which uses ASMP to work in the following way. The main processor will determine what
work needs to be done and will take the bulk of the load, from there it can create instances
of the given task on other processors to complete work. Take a video rendering program,
the main processor could run the application and the user interface, while offloading the
rendering component to a slave processor. This type of action needs to be written into the
software and is not decided at the hardware level. It is the programmers’ responsibility to
determine what jobs should be completed by a given processor.
It must be noted that most applications will ONLY run on the master processor and that the
slave processors can merely take on the role of completing tasks that the master processor asks.
It is rare that an entire application will or can be run from a slave processor.
1.9.2 Differences between Software ASMP and SMP
Symmetrical multiprocessing, when referring to software, implies the exact opposite of ASMP.
In regards to the operating system, a SMP machine is able to spawn any process/task on any of
the processors available. Because SMP systems have no master or slave processors, each logical
unit is able to complete a given task. In an ASMP system, a certain processor may not be able to
complete a task for a number of reason such as the inability to access the entire memory map,
special purpose nature of the processor (e.g. a coprocessor) and thus tasks must be give to it by
master processor. Therefore, it is up to the programmer to make sure the processors are being
used to their maximum potential. In an ASMP environment, a programmer has to worry about
whether a processor can complete a given task and how to make the processors communicate
effectively to distribute tasks.
1.9.3 Modern Applications of ASMP
Currently, there are no consumer level production computers that use asymmetric multiprocessor
designs. There are, however, computers that are able to distribute tasks Asymmetrically. In theory
you are able to use a Symmetrical processor to do asymmetrical computations. A programmer
can choose to use one processor as a main, and only offload certain tasks to the other processor.
Although each physical or logical processor is able to complete any given task, priority is given
to one as the “master” processor, and the other is given the position of “slave”.
1.9.4 Graphical Representation of Asymmetric Multiprocessing
Below are examples of what a cluster of asymmetrical multiprocessors would look like. Observe
the extremely unique nature of these designs and how only one processor has access to the I/O
part of the system. As stated before, these systems work best and were originally designed to do
very specific tasks. One processor may simply do physics calculations while another is dedicated
to rendering 2D video. Above those two processors, will be a master processor that assigns
tasks. Notice also that the main memory is not accessible by all of the processors. The master
processor will usually relay information on a “need to know” basis, to the slave processors.
LOVELY PROFESSIONAL UNIVERSITY 33