Kooperativ multitasking:
1. Oppgaver: I samarbeidende multitasking gir oppgaver frivillig fra seg kontroll over prosessoren til andre oppgaver. Dette oppnås gjennom en "yield"-erklæring eller tilsvarende mekanisme i programmeringsspråket.
2. Tro på oppgavesamarbeid: Hver oppgave er ansvarlig for eksplisitt å gi fra seg kontroll over CPU-en for å tillate andre oppgaver å utføre. Hvis en oppgave ikke gir kontroll, kan hele systemet henge eller slutte å reagere.
3. Ingen prioritetsbasert planlegging: Siden oppgavene samarbeider og bestemmer når de skal gis, finnes det ikke noe konsept med prioritetsbasert planlegging. Alle oppgaver har lik prioritet, og rekkefølgen for utførelse er utelukkende avhengig av den ettergivende oppførselen til hver oppgave.
4. Enkelhet: Kooperativ multitasking er relativt enkel å implementere sammenlignet med forebyggende multitasking. Det krever ikke en planleggingsmekanisme eller sofistikerte algoritmer for å administrere oppgaver.
5. Vanlig i tidlige operativsystemer: Kooperativ multitasking ble ofte brukt i tidlige operativsystemer der enkelhet ble prioritert fremfor ytelse eller håndtering av komplekse arbeidsbelastninger.
Forebyggende multitasking:
1. OS-kontroll over oppgaveplanlegging: I forebyggende multitasking har operativsystemet (OS) kontroll over oppgaveplanlegging og bestemmer når det skal byttes oppgaver. OS foregriper oppgaver som har kjørt i en forhåndsbestemt tidsperiode og gir andre oppgaver en sjanse til å utføre.
2. Prioritetsbasert planlegging: Forebyggende multitasking gir mulighet for prioritetsbasert planlegging, noe som betyr at høyere prioriterte oppgaver gis forrang fremfor lavere prioriterte oppgaver. Dette sikrer bedre ressursallokering og respons på tidskritiske oppgaver.
3. Tvungen kontekstbytte: OS kan tvangssuspendere en oppgaves utførelse og lagre dens tilstand i minnet. Når oppgaven gjenopptas, gjenopprettes dens tidligere tilstand, noe som sikrer kontinuitet og integritet.
4. Forbedret ytelse: Forebyggende multitasking gir mer effektiv og forutsigbar oppgaveplanlegging, noe som fører til bedre generell systemytelse og respons.
5. Kompleksitet: Forebyggende multitasking involverer mer komplekse algoritmer og mekanismer for planlegging, kontekstbytte og administrasjon av oppgavetilstander, noe som gjør implementeringen mer utfordrende.
Oppsummert er samarbeidende multitasking avhengig av frivillig oppgaveavkastning, med oppgaver som har samme prioritet og ingen OS-kontroll over planlegging. Det er enklere å implementere, men kan føre til systemstopp hvis oppgavene ikke samarbeider. Forebyggende multitasking, derimot, gir større OS-kontroll, tillater prioritetsbasert planlegging og sikrer forutsigbar oppgaveutførelse. Den er mer effektiv og egnet for moderne datamiljøer som krever høy ytelse og respons.