En su lugar, los procesos ceden voluntariamente el control periódicamente o cuando están inactivos o bloqueados lógicamente para permitir la ejecución simultánea de múltiples aplicaciones.
Este tipo de multitarea se llama "cooperativo" porque todos los programas deben cooperar para que todo el esquema de programación funcione.
En este esquema, el programador de procesos de un sistema operativo se conoce como un programador cooperativo, cuya función se reduce a iniciar los procesos y les permite devolver el control de forma voluntaria.
[1][2] Aunque rara vez se usa en sistemas modernos más grandes, se usa ampliamente en sistemas embebidos con limitaciones de memoria y también, en aplicaciones específicas como CICS o el subsistema JES2.
Como un sistema multitarea cooperativo depende de que cada proceso regularmente dedique tiempo a otros procesos en el sistema, un programa mal diseñado puede consumir todo el tiempo de la CPU por sí mismo, ya sea realizando cálculos extensos o esperando; Ambos harían que todo el sistema se bloqueara.