When you want the simplicity and reduced synchronization burden of non-preemption and you can guarantee every task yields promptly. Because a cooperatively-scheduled task is never interrupted by another task except where it explicitly yields or blocks, data shared between tasks is implicitly safe between those yield points, so you can often avoid mutexes and critical sections, fewer concurrency bugs, easier reasoning, lower overhead. That's attractive for small, well-understood systems where the task set is fixed and you control all the code, similar in spirit to a structured super-loop. It's a poor choice when you have hard real-time deadlines that require preempting a long-running lower-priority computation, when tasks call into third-party or blocking-but-not-yielding code you don't control, or when one task's misbehavior (an unexpected long loop, a missing yield) hanging the whole system is unacceptable, which is most production real-time systems, hence preemptive being the default. There's also a hybrid reality: even preemptive systems gain cooperative-like safety inside critical sections and when tasks at the same priority don't time-slice. So cooperative is a deliberate choice for simple, fully-controlled, latency-tolerant systems where the synchronization savings outweigh the loss of forced preemption, not a default for real-time work.
RTOS & Real-Time Concepts · Interview question
When is cooperative scheduling actually a good choice?
A strong answer
What a weak answer sounds like
You know the answer. Do you know what gets you dinged?
Pro breaks down the answer most candidates actually give to this question — and the specific reason an interviewer marks it down. It’s the difference between sounding correct and sounding senior, on all 472 questions.
From the lesson
Preemptive vs Round-Robin Scheduling
How the scheduler chooses: priority preemption (urgent runs first), round-robin time-slicing among equal priorities, and cooperative scheduling, plus the starvation and fairness tradeoffs.
More Preemptive vs Round-Robin Scheduling questions
What's the difference between preemptive and cooperative scheduling?Two tasks have the same priority and both are ready. What happens?What is starvation and how do you prevent it?How does FreeRTOS combine priority and round-robin scheduling?When a higher-priority task becomes Ready, what actually happens at the hardware level to switch to it on a Cortex-M?Under preemptive priority scheduling, can a high-priority task ever be blocked by a low-priority one?
Browse all 472 interview questions