Multitasking is basically a tool that enables a user to perform more than one task at a time. Users are able to perform multiple processes on a common processing resource such as a CPU. Multiprogramming is actually one of the categories of scheduling strategies used by Multitasking system on computers. Multiprogramming is a kind of parallel processing. In this several programs run at the same time on a single processor.
Multitasking is executing several programs at same time.here switching between jobs are frequent since they are time shared.
Multiprogramming is collecting several jobs in a job pool and the OS selects the job from the pool so that the CPU has one job to execute,in case of any IO request for the job in execution the CPU switches to another job here switching is less compared to multitasking.
Ultimately both multitasking and multiprogramming improves the CPU utilization they never make CPU to remain idle.
Multiprogramming is collecting several jobs in a job pool and the OS selects the job from the pool so that the CPU has one job to execute,in case of any IO request for the job in execution the CPU switches to another job here switching is less compared to multitasking.
Ultimately both multitasking and multiprogramming improves the CPU utilization they never make CPU to remain idle.