The scheduler is very important in Real-Time Operating System (RTOS). Selection of tasks for execution is provided by the scheduler. Which task to execute when it is provided by the scheduler.There are different types of the scheduling algorithm. Preemptive scheduling, Round-robin scheduling, cooperative scheduling are the types of scheduling algorithms. Mostly developer uses these algorithms but if needed Developer can create own custom scheduling algorithm.
Comparision between preemptive and non-preemptive scheduling:
If the process is running and a new process with high priority come to the processor the preemptive scheduling force the running process to remove and run the process with high priority. This is not the case in non-preemptive scheduling, in non-preemptive scheduling the processor does not remove the process until it completes the process.
In case of preemptive scheduling, the operating system has control to the processor in running state of the process. But, in case of non-preemptive scheduling once the process in the processor is in running state the operating system has no control over the processor.
"First come first served" is the type of non-preemptive scheduling. "Round-robin scheduling" is the type of preemptive scheduling.
Preemptive scheduling is not simple. Non-preemptive scheduling is simple.
Preemptive scheduling is flexible while non-preemptive scheduling is rigid.