In earlier days, Computers was programmed to solve the problem. More prior day’s computer could perform only one job at a time. This computation resulted least CPU utilization. Most of time CPU was idle. To use CPU more efficiently, computer crossed many stages of evaluation.
In 1950 first operating system known as the batch operating system was introduced. Batch Operating System could execute a group of jobs in the form of a single deck of punched card.
Batch processing system was inefficient because of most of the time of processes was wasted in waiting of I/O resources. Hence CPU utilization degraded. To accelerate the CPU utilization in 1960 new operating system introduced by the designer.This OS was a turning point towards the growth of computer. Multi-programming Operating system introduced a new concept for CPU utilization.
Multi-programming OS runs the multiple programs. But in reality, CPU can execute a single application at a given time. If a system has two or more processes.One process was waiting for I/O operation to complete, the second job could use the idle CPU for execution. It increased the CPU utilization.
Multitasking term used in a modern computer system. Multitasking is a logical extension of multiprogramming system that supports multiple programs to run concurrently. In multitasking more than one task are executed at the same time. In this technique the multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with single CPU, only one job can be processed at a time. Multitasking solves the problem by scheduling and deciding which task should be the running task and when a waiting task should get turn. This attempt is done with the help of interrupt (a signal) which is attended by CPU by keeping the current activity aside, saves its present status in buffer and returns to another important job whatever task it was doing earlier. The act of re-assigning a CPU from one task to another one is known as context switch.
The multitasking systems were developed to provide interactive use of a computer system. This system uses the CPU scheduling and multi-programming to provide each user with a small portion of a time-shared computer. Thus multitasking makes the best possible use of available hardware at any given instance of time and improves the overall efficiency of computer system. A multi-tasking operating system is characterized by its capability to support the concurrent execution of more than one task. This is achieved by simultaneous management of several processes in the main memory at the same time and by availing I/O resources among-est the active tasks. The multi-tasking OS monitors the state of all the tasks and of the system resources.
Multitasking provides the fundamental mechanism for an application to control and react to multiple, discrete real-world events and is therefore essential for many real-time applications. A multitasking environment allows applications to be constructed as a set of independent tasks, each with a separate thread of execution and its own set of system resources. The inter-task communication facilities allow these tasks to synchronize and coordinate their activity. Multitasking creates the appearance of many threads of execution running concurrently when, in fact, the kernel interleaves their execution on the basis of a scheduling algorithm. This also leads to efficient utilization of the CPU time and is essential for many embedded applications where processors are limited in computing speed due to cost, power, silicon area and other constraints. In a multi-tasking operating system, it is assumed that the various tasks are to cooperate to serve the requirements of the overall system Co-operation will require that the tasks communicate with each other and share common data in an orderly and disciplined manner, without creating the contention and deadlocks.
Two Types of Multitasking OS
1) Pre-Emptive Multitasking OS: In this OS, the process gets preempted after time quantum.
2) Co-operative Multitasking OS: It is also known as Non-Preemptive OS. In this OS, processes are preemptive after a fixed interval of time. The process can voluntarily control CPU or when CPU idle enables multiple applications to be run concurrently. In Cooperative Multitasking OS, all programs cooperate for the entire scheduling scheme to work. In this OS Process Scheduler of an operating system is known as a cooperative scheduler.
Memory Protection: To protect the memory, so that process’s memory location can’t be modified by another process Memory Management Unit hardware device used. MMU helps the kernel to take the appropriate action regarding memory allocation and de-allocation request.
Difference between Multitasking and Multi-programming Operating System
Multitasking OS | Multi-programming OS |
• The program divided into the fixed size of pages. | • The whole program loaded into memory. |
• Context switching takes place after a fixed interval of time. | • Not fixed time of interval consider. |
• The concept used in modern computing. | • The concept used in an old computer system. |