D. None of these
These are three different concepts, they cannot be equal.
In Multi-Programming a particular program is THE BOSS. Being boss means that the process is given the highest priority to occupy the CPU. It is the only one which claims the CPU until its completed. Although, some other process is granted the CPU for some time while the BOSS process works with I/O devices but not the CPU. This is done to get maximum CPU utilization. When the boss process returns after completing its I/O the running process is preempted and the boss process is again granted the CPU.
In Multi-Tasking there is no boss process, all processes are treated equal and are granted the CPU in a Round Robin fashion. This makes multi-tasking totally different from multi-programming.
Multi-Processing means the system works with multiple CPUs.
In a sense, When we talk multi-processing we meant hardware only. But, when talking multi-programming or multi-tasking we mean software. This makes the def. of multi-processing totally different from multi-programming or multi-tasking. They cannot be equated.
On a multi-processing system we may have implemented multi-programming or multi-tasking its a choice. e.g. a single process at a time is using multiple CPUs to get work done faster; or single process at time is given multiple CPUs for some time then some other process is given all CPUs at once(in a round robin fashion).