Multitasking is the ability of an operating system to execute a number of tasks concurrently. Generally the processor gives the supporting hardware structure, and we discussed in an elaborated article about Processor Hyper-Threading and related technologies. This is an article more about Multitasking in Computing as a whole.
What is Multitasking in Computing
In case of software or Operating System based Multitasking, various running processes in short intervals are alternately activated, making the ultimate work fast. If a computer has multiple CPU cores, it performs several tasks in really simultaneously, that is what multi-processing is. In modern computers, both methods are used in combination for the perfect result.
Multitasking can be useful for different requirements, in particular to optimize the load and for a balanced environment depending on the objective or priority-based resource allocation. The basic idea behind the former is that in an average computer due to the overwhelming relatively slow, external events like keystrokes, multiple clicks by the user, majority of the computation time can not be used. This is interactive session and in many cases, in server, we have to use non-interactive session to eliminate this problem. By multitasking, the waiting time of a process with other processes can be used. This is of benefit for interactivity.
Other Notes on Multitasking
Cooperative multitasking is known as time sharing which we have discussed in a previous article. We are not going in to the detail of cooperative multitasking. The standard method used today is the preemptive multitasking, in which the kernel controls the execution of each process and holding of each process after a certain processing time is in favor of other processes. Then the main process is inactive, other processes can be executed. One popular implementation of the use of a preemptive multitasking is calculation priority and creating a task queue associated with the round-robin scheduling strategy.
Memory protection, Memory swapping are other implemented methods to optimize Multitasking.