Multiprocessing
By: Victor • Essay • 1,127 Words • January 17, 2010 • 588 Views
Join now to read essay Multiprocessing
Multiprocessing
Bob Moses
Operating Systems Concepts
Saturday Section
Pittsburgh Campus
Multiprocessing refers to a computer system’s ability to support more than one process or program at the same time. Multiprocessing operating systems enable several programs to run concurrently. UNIX is one of the most widely used multiprocessing systems, but there are many others, including OS/2 for high-end personal computers and Windows NT for work groups. Multiprocessing systems are much more complicated than single-process systems because the operating system must allocate resources to competing processes in the most efficient manner. (IBM Dictionary of Computing, Tenth Edition, McGraw-Hill, (1994)).
Types of Multiprocessing
Symmetric multiprocessing refers to the processing of programs by multiple processors that share a common operating system, memory and data path. A single copy of the operating system controls all processors. Symmetric multiprocessing units of this type are also referred to as “shared everything” systems. These systems usually do not exceed 16 processors.
(Image courtesy of Sequent Manufacturing)
The most common uses of these types of systems are commercial servers of web applications such used in on line commerce. The advantages of this particular configuration are that they can be easily upgraded by the addition of more processors. These processors are available to execute any of the given processes as soon as the operating system recognizes and configures the new hardware. However, the limitations of such a configuration are that with shared memory, there is a strong emphasis on data manipulation. As each processor competes for a limited amount of shared memory, this limits the speed and up-gradability of such a system. Manufacturers must rely on the development of faster, higher capacity memory to overcome this disadvantage. Currently symmetric multiprocessing computers can address up to 14 gigabytes of physical memory and approximately 2 terabytes of storage. (Sequent Manufacturing Inc., white papers 1998)
Parallel Processing
Parallel processing is a form of information processing that emphasizes the concurrent manipulation of data elements belonging to one or more process solving a single problem. It is also referred to as a “shared nothing” system. These systems are composed of many loosely connected nodes or P/M (Processor / Memory) units that consist of a single processor, memory unit, a copy of the operating system and RDBMS (Relational Database Management System). Nodes are connected by high-speed data paths that pass messages between cooperating nodes. ( Parallel Computing Theory and Practice, Quinn Michael J., Oregon State University, McGraw-Hill)
(image courtesy Sequent manufacturing Inc.)
Advantages of parallel multiprocessing systems are that they are easily repaired by replacement of malfunctioning nodes and not the entire system. They manipulate data concurrently meaning processes are broken down to be processed at the same time. They are scalable
meaning they are able to execute larger computations without the purchase of bigger hardware. They are fast because each task is assigned a node for processing. Disadvantages are that because these nodes must communicate with each other to perform parallel work large operations becomes inefficient. Increased communication also increases the time it takes to access data needed to complete a process. This is known as latency. Greater latencies result in slower system speed.
Operating Systems that Support Multiprocessing
The purpose of multiprocessing operating systems is to add additional computing power to the system by dividing the required processing jobs among several processors. Each processor is considered to be a device. Each device operates at a given speed. The speed is measured is called throughput. It is the number of results it produces per unit of time. The operating system must manage throughput of each device. In order to speed up the process, these jobs must also be divided into a number of steps called segments, or stages.