Open In App

Difference between Multiprogramming and Multitasking

Last Updated : 20 Feb, 2023
Like Article

Both Multi-programming and Multi-tasking are related to Operating Systems Concepts 

CPU is a super fast device and keeping it occupied for a single task is never a good idea. Considering the huge differences between CPU speed and IO speed, many concepts like multiprogramming, multitasking, multithreading, etc have been introduced to make better CPU utilisation. 

Multi programming:- 
Multi-programming increases CPU utilisation by organising jobs (code and data) so that the CPU always has one to execute. The idea is to keep multiple jobs in main memory. If one job gets occupied with IO, CPU can be assigned to other job. 


Multi-tasking is a logical extension of multiprogramming. Multitasking is the ability of an OS to execute more than one task simultaneously on a CPU machine. These multiple tasks share common resources (like CPU and memory). In multi-tasking systems, the CPU executes multiple jobs by switching among them typically using a small time quantum, and the switches occur so quickly that the users feel like interact with each executing task at the same time. 


Note: 1. A task in a multitasking system is not whole application program but it can refers to a “thread of execution” when one process is divided into sub-tasks. 

2. Multitasking OS are time sharing systems.

Difference between Multiprogramming and Multi-tasking  Multiprogramming  Multi-tasking 
1.  It includes the single CPU to execute the program. It uses multiple tasks for the task allocation.
2. Concept of Context Switching is used. Concept of Context Switching and Time Sharing is used.
3. In multiprogrammed system, the operating system simply switches to, and executes, another job when current job needs to wait.  The processor is typically used in time sharing mode. Switching happens when either allowed time expires or where there other reason for current process needs to wait (example process needs to do IO).
4. Multi-programming increases CPU utilization by organizing jobs . In multi-tasking also increases CPU utilization, it also increases responsiveness.
5. The idea is to reduce the CPU idle time for as long as possible. The idea is to further extend the CPU Utilization concept by increasing responsiveness Time Sharing.
6. It uses job scheduling algorithms so that more than one program can run at the same time. Time sharing mechanism is used so that multiple tasks can run at the same time.
7. In community edition, personalized shopping experiences is not created. Promotions, personalized shopping experiences can be displayed in enterprise edition products.
8. Execution of process takes more time. Execution of process takes less time.

Most of the modern operating systems use Multitasking with more complex setup.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads