The running of two or more programs in one computer at the same time. The number of programs that can be effectively multitasked depends on the sophistication of the operating system, the speed of the CPU and the speeds and capacities of memory (RAM) and storage. See preemptive multitasking.
Input/Output Vs. Processing
Programs can run simultaneously in the computer because of the difference between I/O and processing speed. While one program is waiting for input, instructions in another can be executed. During the milliseconds one program waits for data to be read from storage, millions of instructions in another program can be executed. Thousands of instructions can be executed in one program between each keystroke in another program.
Channels and Multicore
In mainframe architectures, multiple I/O channels allow for simultaneous I/O operations to take place. Multiple streams of data, sometimes hundreds, are being read and written at the exact same time. In a multicore CPU, one program can be running in one core while another is multitasked in another core, and so on (see multicore).
Multitasking May Be Just Task Switching
Very often, people think multitasking is occurring when what is really taking place is "task switching." Multitasking implies simultaneous operation; for example, while the user interacts with the program on screen, a program in the background is processing data.
However, when several programs reside in memory (RAM) and do nothing but wait to be "front and center" again, the user is switching between programs (between apps, between tasks). See task switching.
A Note on Ancient Terminology
In the 1960s, the days of only mainframes, multitasking was called "multiprogramming," and multitasking meant "multithreading." See multithreading.