Kooperativni multitasking:
1. Popustljivost zadatka: U kooperativnom multitaskingu, zadaci dobrovoljno prepuštaju kontrolu nad procesorom drugim zadacima. To se postiže naredbom "yield" ili ekvivalentnim mehanizmom u programskom jeziku.
2. Oslanjanje na suradnju na zadatku: Svaki zadatak odgovoran je za eksplicitno odricanje kontrole nad CPU-om kako bi se omogućilo izvršavanje drugih zadataka. Ako zadatak ne uspije prepustiti kontrolu, cijeli sustav može stati ili prestati reagirati.
3. Bez zakazivanja na temelju prioriteta: Budući da zadaci surađuju i odlučuju kada će popustiti, ne postoji koncept raspoređivanja na temelju prioriteta. Svi zadaci imaju jednak prioritet, a redoslijed izvršavanja isključivo se oslanja na ponašanje svakog zadatka.
4. Jednostavnost: Kooperativni multitasking je relativno jednostavan za implementaciju u usporedbi s preventivnim multitaskingom. Za upravljanje zadacima nije potreban mehanizam za raspored ili sofisticirani algoritmi.
5. Uobičajeno u ranim operativnim sustavima: Kooperativni multitasking često se koristio u ranim operativnim sustavima gdje je jednostavnost bila prioritet u odnosu na performanse ili rukovanje složenim radnim opterećenjima.
Preventivni multitasking:
1. Kontrola OS-a nad raspoređivanjem zadataka: U preventivnom multitaskingu operativni sustav (OS) ima kontrolu nad rasporedom zadataka i odlučuje kada će zamijeniti zadatke. OS preuzima zadatke koji su bili pokrenuti unaprijed određeni vremenski odsječak i daje drugim zadacima priliku za izvršenje.
2. Zakazivanje na temelju prioriteta: Preemptivni multitasking omogućuje raspoređivanje na temelju prioriteta, što znači da se zadacima višeg prioriteta daje prednost nad zadacima nižeg prioriteta. To osigurava bolju raspodjelu resursa i odziv na vremenski kritične zadatke.
3. Prisilno prebacivanje konteksta: OS može prisilno obustaviti izvršenje zadatka i spremiti njegovo stanje u memoriju. Kada se zadatak nastavi, njegovo prethodno stanje se vraća, osiguravajući kontinuitet i cjelovitost.
4. Poboljšana izvedba: Preemptivni multitasking omogućuje učinkovitije i predvidljivije raspoređivanje zadataka, što dovodi do boljih ukupnih performansi i odziva sustava.
5. Složenost: Preemptivni multitasking uključuje složenije algoritme i mehanizme za raspoređivanje, prebacivanje konteksta i upravljanje stanjima zadataka, što njegovu implementaciju čini izazovnijom.
Ukratko, kooperativni multitasking oslanja se na dobrovoljno popuštanje zadataka, pri čemu zadaci imaju jednak prioritet i bez kontrole OS-a nad rasporedom. Jednostavniji je za implementaciju, ali može dovesti do zastoja sustava ako zadaci ne surađuju. Preemptivni multitasking, s druge strane, pruža veću kontrolu OS-a, omogućuje planiranje na temelju prioriteta i osigurava predvidljivo izvršenje zadatka. Učinkovitiji je i prikladniji za moderna računalna okruženja koja zahtijevaju visoke performanse i odziv.