User-space preemption can occur
· When returning to user-space from a system call
· When returning to user-space from an interrupt handler
Kernel-space preemption can occur
· When an interrupt handler exits, before returning to kernel-space(different with 2.4 kernel)
· When kernel code becomes preemptible again(different with 2.4 kernel)
· If a task in the kernel explicitly calls schedule()
· If a task in the kernel blocks (which results in a call to schedule())
Due to Reschedule capability in kernel space, we call Linux 2.6 is full preemption OS