What is Multiprogramming, Multiprocessing & Multitasking

What is Multi-programming?

Simultaneous processing of multiple, independent programs by interleaving (=leaving some time gap in between) their execution is called Multi programming. In other words, it is defined as execution of two or more programs at a time, that all reside (=exists) in primary storage. It is a facility available in an operating system.

CPU can execute only one instruction at a time i.e. it cannot execute instructions from two or more programs simultaneously. However, it can execute instructions from one program then from second program then from first again and so on. This type of processing is referred to as “concurrent execution”.

In multi programming, storage area is allocated for each program and such areas are called “partitions”. Each partition will have some form of storage protection and priority to ensure that a program in one portion will not accidentally write over and destroy the instructions of another partition. With the help of this facility, all parts of the system, processor, input and output peripherals can be used concurrently. Thus the entire system can be more effectively.

What is Multiprocessing?

Multiprocessing (or parallel processing) refers to the use of two or more central processing units, linked together, to perform the work simultaneously. The available CPU’s can execute different instructions of the same program or different instructions of different programs at the same time.

Using multiprocessing facility many complex operations can be performed at the same time. Although parallel processing is not yet widespread, it will be the trend in future. Because of the availability of cheaper but more powerful processors, many computer manufacturers are now designing hardware and software systems to do multiprocessing. Since several machines can work as a team and operate in parallel, jobs can be processed much more rapidly than on a single machine. Since a micro processor is very costly, multiprocessing is very expensive.

What is Multitasking?

Multi-tasking refers to the operating system’s ability to execute two or more tasks of a single user concurrently. Most of the operating systems used in micro computers were single-user operating systems. These operating systems allow the user to work on one task at a time. For example, in many single-user operating systems, a word-processing user cannot type a document while another document is being printed out on an attached printer.

For microcomputers, multi-tasking operating systems provide single users with multi programming capabilities. This is often accomplished through foreground/background processing. Multitasking operating systems for microcomputers-such as Windows, OS/2, UNIX, XENIX, and Macintosh System 7 – only run on powerful microprocessors. Old machines with less powerful microprocessor typically use single-user operating system.