Computer Engineering; Operating Systems
A multiprocessing operating system (OS) is one in which two or more central processing units (CPUs) control the functions of the computer. Each CPU contains a copy of the OS, and these copies communicate with one another to coordinate operations. The use of multiple processors allows the computer to perform calculations faster, since tasks can be divided up between processors.
Multiprocessing operating systems (OSs) perform the same functions as single-processor OSs. They schedule and monitor operations and calculations in order to complete user-initiated tasks. The difference is that multiprocessing OSs divide the work up into various subtasks and then assign these subtasks to different central processing units (CPUs). Multiprocessing uses a distinct communication architecture to accomplish this. A multiprocessing OS needs a mechanism for the processors to interact with one another as they schedule tasks and coordinate their completion. Because multiprocessing OSs rely on parallel processing, each processor involved in a task must be able to inform the others about how its task is progressing. This allows the work of the processors to be integrated when the calculations are done such that delays and other inefficiencies are minimized.
For example, if a single-processor OS were running an application requiring three tasks to be performed, one taking five milliseconds, another taking eight milliseconds, and the last taking seven milliseconds, the processor would perform each task in order. The entire application would thus require twenty milliseconds. If a multiprocessing OS were running the same application, the three tasks would be assigned to separate processors. The first would complete the first task in five milliseconds, the second would do the second task in eight milliseconds, and the third would finish its task in seven milliseconds. Thus, the multiprocessing OS would complete the entire task in eight milliseconds. From this example, it is clear that multiprocessing OSs offer distinct advantages.
One type of tightly coupled multiprocessing system has processors share memory with each other. This is known as symmetric multiprocessing (SMP). Processor symmetry is present when the multiprocessing OS treats all processors equally, rather than prioritizing a particular one for certain operations. Multiprocessing OSs are designed with special features that support SMP, because the OS must be able to take advantage of the presence of more than one processor. The OS has to “know” that it can divide up certain types of tasks among different processors. It must also be able to track the progress of each task so that the results of each operation can be combined once they conclude. In contrast, asymmetric multiprocessing occurs when a computer assigns system maintenance tasks to some types of processors and application tasks to others. Because the type of task assigned to each processor is not the same, they are out of symmetry. SMP has become more commonplace because it is usually more efficient.
The advent of multiprocessing OSs has had a major influence on how people perform their work. Multiprocessing OSs can execute more than one program at a time. This enables computers to use more user-friendly interfaces based on graphical representations of input and output. It allows users with relatively little training to perform computing tasks that once were highly complex. They can even perform many such tasks at once.
Multiprocessing OSs, though once a major innovation, have become the norm rather than the exception. As each generation of computers must run more and more complex applications, the processing workload becomes greater and greater. Without the advantages offered by multiple processors and OSs tailored to take advantage of them, computers would not be able to keep up.
—Scott Zimmer, JD
Garrido, José M., Richard Schlesinger, and Kenneth E. Hoganson. Principles of Modern Operating Systems. 2nd ed. Burlington: Jones, 2013. Print.
Gonzalez, Teofilo, and Jorge Díaz-Herrera, eds. Computing Handbook: Computer Science and Software Engineering. 3rd ed. Boca Raton: CRC, 2014. Print.
Sandberg, Bobbi. Networking: The Complete Reference. 3rd ed. New York: McGraw, 2015. Print.
Silberschatz, Abraham, Peter B. Galvin, and Greg Gagne. Operating Systems Concepts. 9th ed. Hoboken: Wiley, 2012. Print.
Stallings, William. Operating Systems: Internals and Design Principles. 8th ed. Boston: Pearson, 2014. Print.
Tanenbaum, Andrew S., and Herbert Bos. Modern Operating Systems. 4th ed. Boston: Pearson, 2014. Print.