In a system with non-preemptive scheduling, the CPU scheduler is invoked when: (a) a process switches from the running state to the waiting state (b) a process switches from the running state to the ready state (c) a process switches from the waiting state to the ready state (d) a process switches from the new state to the ready state