What is Multiprogramming?

Multiprogramming is one of the more basic types of parallel processing that can be employed in many different environments. Essentially, it makes it possible for several programs to be active at the same time, while still running through a single processor. Its functionality in this environment involves a continual process of sequentially accomplishing tasks associated with the function of one program, then moving on to run a task associated with the next program.

This type of processing is very different from the multiprocessing because, even though there may be several programs currently active, the uniprocessor is not simultaneously executing commands for all the programs. Instead, the processor addresses each program, executes a single command, then moves on to the next program in the queue. The previous program remains active, but enters into a passive state until the uniprocessor returns to the front of the queue and executes a second command.

From an end user standpoint, the process is seamless. As far as actual functionality, the user appears to be using several different applications at the same time. This is because multiprogramming utilizes the uniprocessor to execute commands quickly. The end result is that a user notices little if any lag time when minimizing one application in order to perform a task associated with a different application.

The mechanism within multiprogramming is known as an interrupt. Each task is granted a specific amount of time for processing before the operating systems will move on to the next program and the next task. In a sense, this method is about juggling several tasks at one time, quickly performing one piece of the required action, then moving to do something with a different task before returning to the former job.

Memory is important for this form of processing to function correctly. There needs to be enough capacity to ensure that, if one program within the rotating queue encounters a problem, it does not prevent delays or impact the operation of other open applications. At the same time, some type of memory protection should be in place. If this is not the case, then a problem with one application can create a cascading effect that shuts down or at least slows down the other open applications.