In computing, multitasking is a method by which multiple tasks are performed by the user also known as processes, share common processing resources such as a CPU. CPU is actively executing more than one task at a time. Multitasking solves the problem by scheduling the tasks instructions. Which task may be the one running at any given time, when another waiting task gets a turn. These requests are managed by reassigning a CPU from one task to another one is called a context switch. Even on computers with more than one CPU (called multiprocessor machines), multitasking allows many more tasks to be run than there are CPUs.
Multiprogramming:The method of Multiprogramming systems took place in the 1960s. In that process several different programs in batch were loaded in the computer memory, and the first one began to run. One program after another executed when the first program reached an instruction waiting for a device that has a message, the context of this program was stored away, and the second program in memory was given a chance to run. The process continued until all programs finished running.
In Multiprogramming programs may have delay; the very first program may very well run for hours without needing access to a peripheral. As there were no users waiting at an interactive terminal, this was no problem.
Multiprocessing is the execution of more than one processors at a time. But they must be coordinated. Multiprocessing is a general term that can mean the dynamic assignment of a program to one of two or more computers working on the same program at the same time (in parallel). As each computer has its own operating system so therefore they have to be coordinated and managed properly in order to share instructions