Not necessarily. A lot of embedded projects use realtime operating systems (RTOS). And those make use of preemptive schedulers in order to actually provide realtime guarantees.
There's obviously also some projects which just use a bare-metal loop to do everything - that probably counts as cooperative.