Hacker News new | ask | show | jobs
by ciarcode 1519 days ago
I always think to priority-based scheduling in this way. Maybe it can help someone else.

The scheduler will always schedule the highest priority task among ones in the ready queue, but at different times.

- If preemptive, the scheduler will schedule the higher priority task (higher than the currently running one) as soon as it enters the ready queue.

- If non preemptive, the scheduler will schedule the higher priority task only when the running one terminated or explicitly call a yield() (call to yield --> cooperative)

In principle, you can mix both scheduling types, making some tasks "non-preemptable" and other tasks "preemptable".