Cooperativ multitasking:
1. Uppgiftsavkastning: Vid kooperativ multitasking ger uppgifter frivilligt upp kontrollen över processorn till andra uppgifter. Detta uppnås genom en "yield"-sats eller motsvarande mekanism i programmeringsspråket.
2. Troende på uppgiftssamarbete: Varje uppgift är ansvarig för att uttryckligen avstå från kontrollen av CPU:n för att tillåta andra uppgifter att utföras. Om en uppgift inte ger kontroll kan hela systemet hänga sig eller sluta svara.
3. Ingen prioritetsbaserad schemaläggning: Eftersom uppgifter samarbetar och bestämmer när de ska ge resultat, finns det inget koncept med prioritetsbaserad schemaläggning. Alla uppgifter har samma prioritet, och ordningen för utförande beror enbart på varje uppgifts eftergivande beteende.
4. Enkelhet: Cooperativ multitasking är relativt enkel att implementera jämfört med förebyggande multitasking. Det kräver ingen schemaläggningsmekanism eller sofistikerade algoritmer för att hantera uppgifter.
5. Vanligt i tidiga operativsystem: Cooperativ multitasking användes ofta i tidiga operativsystem där enkelhet prioriterades framför prestanda eller hantering av komplexa arbetsbelastningar.
Förebyggande multitasking:
1. OS kontroll över uppgiftsschemaläggning: I förebyggande multitasking har operativsystemet (OS) kontroll över uppgiftsschemaläggning och bestämmer när uppgifter ska bytas. OS föregriper uppgifter som har körts under en förutbestämd tidsperiod och ger andra uppgifter en chans att utföra.
2. Prioritetsbaserad schemaläggning: Förebyggande multitasking möjliggör prioritetsbaserad schemaläggning, vilket innebär att högre prioriterade uppgifter ges företräde framför lägre prioriterade uppgifter. Detta säkerställer bättre resursallokering och lyhördhet för tidskritiska uppgifter.
3. Tvingad kontextväxling: OS kan med tvång avbryta exekveringen av en uppgift och spara dess tillstånd i minnet. När uppgiften återupptas återställs dess tidigare tillstånd, vilket säkerställer kontinuitet och integritet.
4. Förbättrad prestanda: Förebyggande multitasking ger mer effektiv och förutsägbar uppgiftsschemaläggning, vilket leder till bättre övergripande systemprestanda och lyhördhet.
5. Komplexitet: Förebyggande multitasking involverar mer komplexa algoritmer och mekanismer för schemaläggning, kontextväxling och hantering av uppgiftstillstånd, vilket gör implementeringen mer utmanande.
Sammanfattningsvis förlitar sig kooperativ multitasking på frivillig uppgift att ge efter, med uppgifter som har samma prioritet och ingen OS-kontroll över schemaläggning. Det är enklare att implementera men kan leda till att systemet hänger sig om uppgifterna inte samarbetar. Förebyggande multitasking, å andra sidan, ger större OS-kontroll, tillåter prioritetsbaserad schemaläggning och säkerställer förutsägbar uppgiftsexekvering. Det är mer effektivt och lämpar sig för moderna datormiljöer som kräver hög prestanda och lyhördhet.