Coöperatief multitasken:
1. Taakopbrengst: Bij coöperatieve multitasking geven taken vrijwillig de controle over de processor over aan andere taken. Dit wordt bereikt via een "yield"-instructie of een gelijkwaardig mechanisme in de programmeertaal.
2. Vertrouwen op taaksamenwerking: Elke taak is verantwoordelijk voor het expliciet opgeven van de controle over de CPU, zodat andere taken kunnen worden uitgevoerd. Als een taak geen controle oplevert, kan het hele systeem vastlopen of niet meer reageren.
3. Geen op prioriteiten gebaseerde planning: Omdat taken samenwerken en beslissen wanneer ze moeten worden opgeofferd, bestaat er geen concept van op prioriteiten gebaseerde planning. Alle taken hebben dezelfde prioriteit, en de volgorde van uitvoering is uitsluitend afhankelijk van het opbrengstgedrag van elke taak.
4. Eenvoud: Coöperatieve multitasking is relatief eenvoudig te implementeren in vergelijking met preventieve multitasking. Er zijn geen planningsmechanismen of geavanceerde algoritmen nodig om taken te beheren.
5. Veelgebruikt in vroege besturingssystemen: Coöperatieve multitasking werd vaak gebruikt in vroege besturingssystemen waar eenvoud prioriteit kreeg boven prestaties of het omgaan met complexe werklasten.
Preëmptieve multitasking:
1. OS-controle over taakplanning: Bij preventieve multitasking heeft het besturingssysteem (OS) controle over de taakplanning en beslist het wanneer er van taak moet worden gewisseld. Het besturingssysteem neemt taken over die al een vooraf bepaald tijdsinterval actief zijn en geeft andere taken een kans om uit te voeren.
2. Op prioriteiten gebaseerde planning: Preventieve multitasking maakt planning op basis van prioriteiten mogelijk, wat betekent dat taken met een hogere prioriteit voorrang krijgen op taken met een lagere prioriteit. Dit zorgt voor een betere toewijzing van middelen en responsiviteit bij tijdkritische taken.
3. Gedwongen contextwisseling: Het besturingssysteem kan de uitvoering van een taak met geweld onderbreken en de status ervan in het geheugen opslaan. Wanneer de taak wordt hervat, wordt de vorige status hersteld, waardoor continuïteit en integriteit worden gewaarborgd.
4. Verbeterde prestaties: Preventieve multitasking zorgt voor een efficiëntere en voorspelbaardere taakplanning, wat leidt tot betere algehele systeemprestaties en reactievermogen.
5. Complexiteit: Preventieve multitasking omvat complexere algoritmen en mechanismen voor planning, contextwisseling en het beheren van taakstatussen, waardoor de implementatie ervan een grotere uitdaging wordt.
Samenvattend is coöperatieve multitasking afhankelijk van het vrijwillig opleveren van taken, waarbij taken dezelfde prioriteit hebben en geen controle van het besturingssysteem over de planning. Het is eenvoudiger te implementeren, maar kan ertoe leiden dat het systeem vastloopt als taken niet samenwerken. Preventieve multitasking biedt daarentegen meer controle over het besturingssysteem, maakt planning op basis van prioriteiten mogelijk en zorgt voor een voorspelbare taakuitvoering. Het is efficiënter en geschikt voor moderne computeromgevingen die hoge prestaties en reactievermogen vereisen.