Multiprocessing
Essay by review • October 16, 2010 • Research Paper • 1,861 Words (8 Pages) • 1,108 Views
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. This process is called a pipelined operation. In other words the output of one segment is the input for another. A copy machine is a good example of a pipelined process. A copy processor must input paper, take a scanned image of what is to be copied, project the image to the page and eject the printed copy. By dividing the copy process into three stages: Import / export page, scan image and print image the output (throughput) of the copier increases 3 fold without increasing processing speed. (Parallel Computing Theory and Practice 6)
The next issue for the operation system is resource management. The resources of the computer must be equally divided among the processors as needed for the given task. These resources include memory, disk access and processor state (ready, busy or waiting). This is called process scheduling. It consists of:
1.Coordinating the switching of the processor's resources from one process to another.
2.Maintaining the state of each processor during periods in which the process is ready or suspended.
3.Performing the arbitration of which process gets to run and when.
(Principles of Parallel and Multiprocessing, Desrochers, George 93)
These operating systems also must maintain concurrency. Concurrency is the property that distinguishes an active object for one that is not active. This is done by the use of threads. Threads are separate tasks running within a program. Effectively used, they can prevent the entire process from being tied up while the one processor is performing a lengthy operation.
Multithreading which provides better reliability and throughput, better microprocessor utilization, and the ability to take advantage of multiprocessor machines.
Principle Multiprocessing
...
...