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 utilization.
Multi-programming increases CPU utilization by organizing 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. In multi-tasking systems, the CPU executes multiple jobs by switching among them typically using a small time quantum, and the switches occur so frequently that the users can interact with each program while it is running.
Difference between Multiprogramming and Multi-tasking
|1.||Both of these concepts are for single CPU.||Both of these concepts are for single CPU.|
|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 organising 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.|
Most of the modern operating systems use Multitasking with more complex setup.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Difference between node.js require and ES6 import and export
- Similarities and Difference between Java and C++
- Difference Between DOS and Windows
- Difference Between Apache Kafka and Apache Flume
- Difference between Characteristics of Combinational and Sequential circuits
- Difference between Preemptive Priority based and Non-preemptive Priority based CPU scheduling algorithms
- Difference between Flip-flop and Latch
- Difference between Algorithm, Pseudocode and Program
- Difference between Applets and Servlets
- Difference between fundamental data types and derived data types
- Difference between Deterministic and Non-deterministic Algorithms
- Difference between HTML and HTML5
- What is the difference between parseInt() and Number()?
- Difference between Indirect and Implied Addressing Modes
- Difference between Hardwired and Micro-programmed Control Unit | Set 2
- Difference between isset() and array_key_exists() Function in PHP
- Difference between Horizontal and Vertical micro-programmed Control Unit
- Difference between bindParam and bindValue in PHP
- Difference between std::quick_exit and std::abort
- How ajax works? Difference between angular js and jquery
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : AyushShaZz