The scheduler is permitted to forcibly perform a context switch during kernel mode
Equality between user process and kernel process
Kernel during its execution, rather than co-operatively waiting for the kernel function to complete its execution and return control of the processor to the scheduler.
Preemptive kernel
A process running in kernel mode can be replaced by another process while in the middle of a kernel function. The key motivation is to reduce the Dispatch latency of the user mode processes. Hard for implementation.
Nonpreemptive kernel
The current process cannot be replaced unless it is about to switch to user mode. Suitable for Real-time Task oriented mission critical situation.