is the coordinated processing of programs by more than one computer processor. Multiprocessing is a general term that can mean the dynamic assignment of a program to one of two or more computers working in tandem or can involve multiplecomputers working on the same program at the same time (in parallel).With the advent of parallel processing, multiprocessing is divided into symmetricmultiprocessing (SMP
) and massively parallel processing (MPP).In symmetric (or "tightly coupled")
Public cloud computing servicesmultiprocessing, the processors share memory and the I/O busor data path. A single copyof theoperating systemis in charge of all the processors. SMP, also known as a "sharedeverything" system, does not usually exceed 16 processors.In massively parallel (or "loosely coupled") processing, up to 200 or more processors canwork on the same application. Each processor has its own operating system and memory, but an "interconnect" arrangement of data paths allows messages to be sent between processors. Typically, the setup for MPP is more complicated, requiring thought abouthow to partition a common database among processors and how to assign work amongthe processors. An MPP system is also known as a "shared nothing" system.Multiprocessing should not be confused withmultiprogramming, or the interleavedexecution of two or more programs by a processor. Today, the term is rarely used sinceall but the most specialized computer operating systems support multiprogramming.Multiprocessing can also be confused withmultitasking, the management of programsand the system services they request as tasks that can be interleaved, and withmultithreading, the management of multiple execution paths through the computer or of multiple users sharing the same copy of a program.
Multiprogramming is a rudimentary form of parallel processingin which several programs are run at the same time on a uniprocessor. Since there is only one processor ,there can be no true simultaneous execution of different programs. Instead, the operatingsystem executes part of one program, then part of another, and so on. To the user itappears that all programs are executing at the same time.If the machine has the capability of causing aninterruptafter a specified time interval,then the operating system will execute each program for a given length of time, regaincontrol, and then execute another program for a given length of time, and so on. In theabsence of this mechanism, the operating system has no choice but to begin to execute a