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. Multiprocessing operating systems can handle tasks more quickly, as each CPU that becomes available can access the shared memory to complete the task at hand so all tasks can be completed the most efficiently.
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.
Multiprocessing OSs can be designed in a number of different ways. One main difference between designs is the degree to which the processors communicate and coordinate with one another. This is known as processor coupling. Coupling is classified as either “tight” or “loose.” Loosely coupled multiprocessors mostly communicate with one another through shared devices rather than direct channels. For the most part, loosely coupled CPUs operate independently. Instead of coordinating their use of devices by directly communicating with other processors, they share access to resources by queueing for them. In tightly coupled systems, each CPU is more closely bound to the others in the system. They coordinate operations and share a single queue for resources.
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.