When a process switches from running state to ready state or from waiting state to ready state. The CPU cycles are allocated to process for a limited time and then the process is again placed back in the ready queue if that process still has CPU burst time left. The process stays in the queue until it gets the chance to execute again.Preemptive scheduling is used in Round Robin, Shortest Remaing Time First, priority.
Non Preemptive Scheduling:
Non-preemptive scheduling is when a process terminates or a process switches its state from running to waiting state. Once the resources are allocated to the process the CPU keeps executing the process until it gets terminated or it reached the waiting state. In non Preemptive scheduling, it waits for the process completion and then allocates the CPU with another process.Non-Preemptive scheduling is used in Shortest Job First (SJF basically non preemptive) and Priority (non preemptive version), etc.