Una forma di multitasking impiegata da Apple nel suo sistema operativo Mac OS. Diverse applicazioni possono essere caricate contemporaneamente, ma quelle in background possono attivarsi e continuare nella loro elaborazione solo quando l'applicazione in primo piano (foreground) è temporaneamente inattiva. Questo sistema di multitasking prevede che l'applicazione ceda il controllo della CPU a un'altra applicazione solo in momenti prefissati, come ad esempio quando è pronta ad accettare input dalla tastiera e non ha altre elaborazioni da svolgere. Si chiama cooperativo perchè le applicazioni devono essere progettate in modo da cooperare tra loro, cedendosi reciprocamente il controllo della CPU senza l'intervento di un arbitro esterno. La macchina può facilmente essere monopolizzata da un'applicazione che esegue una continua attività di elaborazione oppure che semplicemente non cede il controllo della CPU anche quando è inattiva (attende input dalla tastiera). In questo ambiente non può essere garantita la funzionalità di un programma di comunicazione che lavori in background. Infatti per loro natura i programmi di comunicazione devono essere in grado di ricevere i dati in arrivo entro un certo ritardo massimo e quindi deve essere garantita loro la possibilità di acquisire anche temporaneamente il controllo della CPU a intervalli di tempo massimi definiti. Il multitasking cooperativo viene anche chiamato non-preemptive multitasking.
|