Let us understand what multiprogramming is.
It is the ability of an operating system which executes more than one program on a single processor machine. More than one task or program can store or reside into the main memory at one point of time.
In this concept the CPU executes some part of one program, and then continues with another part of the program, and so on. Because of this process, the CPU will never go into the idle state unless there is no process ready to execute at the time of Context Switching.
The diagram given below depicts the multiprogramming −
The advantages of multiprogramming are as follows −
Very high CPU utilization.
Less waiting time for the processes.
Multi-programming decreases total read time that is needed to execute a job.
Allows multiple Users
Increased Resources Utilization
Improved Memory Utilization
Multiprocessing is the ability of an operating system which is used to execute more than one process simultaneously on a multiprocessor machine. In this, a computer uses more than one CPU at a time. Two or more processors present in the same computer, sharing all the resources like the system bus, memory, and other I/O is called a Multiprocessing System.
The diagram given below depicts the multiprocessing −
The advantages of multi-processing are as follows −
As the workload is distributed evenly between the different processors it becomes more accurate and the reliability increases.
This is one of the examples of true parallel processing that means, more than one process executing at the same time.
By increasing the number of processors, more work can be completed in less time which leads to increasing the throughput.
Multitasking is the ability of an operating system and it is a logical extension of multiprogramming. It is the ability of an operating system to execute more than one task simultaneously on a single processor machine.
Actually, no two tasks on a single processor machine can be executed at the same time, the CPU switches from one task to the next so quickly that it appears all the tasks are executing at the same time. Multitasking is based on time sharing alongside the concept of context switching.
The diagram given below depicts the multitasking −
The advantages of multi-tasking are as follows −
It will reduce starvation because each process is given a particular time quantum for execution.