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
   35   36   37   38   39   40   41   42   43   44   45