The operating system is an important piece of program that manages the computer hardware and other software applications.
We can say it acts as a middle man. This is because the user cannot give commands directly to the CPU in machine language nor the CPU can interact with the user directly. So there needs to be a middle man which communicates and translates all interaction between user and CPU.
Apart from the basic tasks which the operating system does such as controlling peripheral devices, showing output on the screen, tracking data, and files, the operating system also serves a higher purpose of multiprogramming and multitasking.
Multiprogramming vs Multitasking in Operating system
The main difference between Multiprogramming and multitasking is that in multiprogramming the CPU executes more than one program simultaneously whereas in multitasking CPU executes more than one task simultaneously.
Comparison Table Between Multiprogramming and Multitasking in Operating System
Parameter of comparison | Multiprogramming | Multitasking |
---|---|---|
Meaning | In a Multiprogramming system, one or more programs are loaded in the main Memory which is ready to execute simultaneously. | Multitasking refers to execute multiple programs, tasks, threads running at the same time |
Objective | The multiprogramming objective is to improve the utilization of the CPU. | The multitasking objective is to improve the timing of the response. |
Time | Multiprogramming takes more time to execute any program to process | Multitasking takes less time to execute any task or program process. |
What is Multiprogramming?
Multiprogramming focuses on increasing the utilization of the CPU. It runs multiple processes at the same time on a single processor.
The CPU jumps to another job or program while the program goes for IO operation i.e In Multiprogramming the operating system keeps several jobs/programs in memory so the CPU selects a job and starts executing it.
When that job needs to wait for any IO operation then the CPU switches to another job and starts executing it. So, this keeps CPU busy and highly utilized and it never sits idle.
Multiprogramming can be done on a slow processing CPU. It requires less memory (RAM or ROM) to function. This whole idea of Multiprogramming is to keep the CPU busy as long as possible.
Advantages of Multiprogramming
- High CPU Utilization
- Shorter Response time
- Ability to assign priority to the jobs
Disadvantage of Multiprogramming
- Scheduling implementation is not easy
- More management is required
What is Multitasking?
Multitasking means working on more than one task at a time means you are using your computer and listening to songs. Also searching something on the internet using a browser and making a word file that’s your assignment. It seems like all the tasks are happening at the same time. It is not all the task happening at the same time it’s the processor switching between different in so speed manner that we think that they are happening in the same time.
Multitasking is quite similar to multiprogramming but in this CPU is allocated to a process for fixed timing i.e ‘Time quantum or time slice’ after that CPU ‘Context switch’ to another process. It executes more than one program or task at the same time.
In multitasking users can interact with the system for example we can type a letter while the printing task is going on. For performing Multitasking, the PC requires a large memory (RAM or ROM). Its main objective is to improve the timing of response from the CPU.
Multitasking is a very complicated system. It is based on a time slice concept which allocates a fixed interval of time to each task to be executed. It is very effective when a program needs a high degree of parallelism. It provides a fixed interval of time for every program to execute.
Advantages of Multitasking
- Shorter response time
- Logical parallelism
- CPU utilization
Disadvantages of multitasking
- Can’t be implemented on a very slow speed processor.
- Requires large storage memory to work.
Main Differences Between Multiprogramming and Multitasking in Operating System
- Multiprogramming mainly focuses on increasing CPU utilization. The programs are arranged in such a way that the CPU will never be idle; it will always have one program after another to execute. One the other hand, Multitasking aims to improve the response time from the CPU.
- In Multiprogramming the switching between the process is done when the ongoing process stops and the CPU is allocated to another process, whereas in Multitasking, switching between the tasks or processes occurs when the time quantum or time slice of the currently ongoing process gets over.
- Multiprogramming can be performed on a computer which has a low RAM or ROM memory; it does not require large memory storage to function. Whereas for Multitasking large memory storage is required to carry out all the tasks or processes at the same time.
- Multiprogramming takes more time to execute any process when compared to multitasking which takes very little time to execute any task or process.
- The concept of multiprogramming is based on switching. The operating system keeps the record of tasks in memory and then the operating system performs the tasks stored in the memory followed by another task and it continues to perform the stored tasks. Whereas Multitasking is based on time-sharing and it executes tasks according to the equal time allotted to every task or process.
Conclusion
Multiprogramming and Multitasking are the two aspects of the Modern operating system. Multiprogramming is recording several processes in the memory and then executing it one after the other on a single processor.
Multitasking is quite similar to multiprogramming but in this CPU is allocated to a process for fixed timing. It executes more than one program or task at the same time utilizing multiple CPUs on the same computer.
So, we can say that Multitasking can be considered as multiprogramming however, a Multiprogramming cannot be considered as multitasking.
References
- https://dl.acm.org/doi/abs/10.1145/48012.48037
- https://ieeexplore.ieee.org/abstract/document/5009151/