Processes on a computer system are scheduled by what is known as a scheduler, the need for a scheduler is important , a scheduler improves performance of a system, and is tasked with the organization of processes that the CPU will handle. In the uni-programming systems like MS DOS, when a system process waits for any I/O operation to be performed, the CPU remains idol. This is an overhead since it wastes time and causes the problem of starvation. However, In Multiprogramming systems, the CPU doesn't remain idle during the waiting time of the Process and it starts executing other processes. Operating System needs to have a means of defining which process the CPU will be given to handle, and this is where the usefulness of the scheduler is shown.