Существует два основных типа многозадачных систем. Кооперативный и Упреждающий.
В кооперативной системе каждая задача получает контроль, а затем должна выполняться в течение некоторого периода. Затем он должен добровольно вернуть управление планировщику. Это может быть выполнением запланированной функции или выполнением функции yield (). Можно заставить систему не отвечать на запросы, выполнив задачу, которая не дает результатов.
В упреждающей системе планировщик сохраняет полный контроль над тем, какая задача выполняется и как долго, путем применения ограничения по времени и / или приоритета задачи. Само исполнение обычно запускается системными часами, которые генерируют прерывания с некоторой фиксированной скоростью. Из-за этого свойства более трудно сделать систему безразличной, но все же возможной из-за инверсии приоритетов или взаимоблокировок ресурсов.