Procesi predstavljaju jedan od najvažnijih koncepata operativnih sistema. Program je niz instrukcija koji ostvaruje neki algoritam. Proces je program u statusu izvršavanja, zajedno sa svim resursima koji su potrebni za rad programa. Znači: program je fajl na disku. Kada se taj fajl učita u memoriju i počinje da se izvršava dobijemo proces.
Stanja procesa
Procesi se nalaze u jednom od sljedećih stanja:
- proces se izvršava (RUNNING) – procesor upravo izvršava kod ovog procesa
- proces je spreman, ali se ne izvršava (READY) – proces je dobio sve potrebne resurse, spreman je za izvršavanje, čeka procesor
- proces je blokiran, čeka na nešto (npr. čeka štampač da završi sa štampanjem – BLOCKED) – za dalji rad procesa potrebni su neki resursi, koji trenutno nisu na raspolaganju, čeka IO operaciju, rezultat nekog drugog procesa itd.

Imamo 4 prelaska između različitih stanja:
- proces prelazi iz stanja IZVRŠ AVANJA u stanje BLOKIRAN kada su mu za dalje izvršavanje potrebni neki resursi, koji trenutno nisu dostupni. Ovu promenu stanja vrši sam proces: predaje zahtjev za neki resurs, pa čeka taj resurs. Npr.: pošalje zahtjev skeneru da skenira neku sliku, i čeka rezultat skeniranja
- proces prelazi iz stanja IZVRŠ AVANJA u stanje SPREMAN ako mu istekne dodijeljeno procesorsko vrijeme (time-sharing) – tada proces prelazi u listu procesa koji čekaju na procesor
- proces prelazi iz stanja SPREMAN u stanje IZVRŠ AVANJA kada se procesor oslobodi i može da izvršava kod posmatranog procesa (izabere se iz liste čekanja po nekom kriterijumu i izvršava se)
- proces prelazi iz stanja BLOKIRAN u stanje SPREMAN, kada dođe do potrebnih resursa i spreman je za dalji rad, ali procesor trenutno nije slobodan, pa prelazi u listu čekanja (npr. skener je završio skeniranje, i sad proces može nastaviti sa radom (spreman je), ali procesor je trenutno zauzet izvršavanjem nekog drugog procesa, pa mora da čeka u redu… )
Suspendovani procesi
Kod nekih operativnih sistemima procesi mogu biti i suspendovani (suspended). Na taj način dobijamo još dva stanja:
- proces je suspendovan i spreman (ako je došlo do suspendovanja u stanju spreman)
- proces je suspendovan i blokiran (ako je došlo do suspendovanja u stanju blokiran).
Proces koji je suspendovan, prestaje da se takmiči za resurse, oslobađaju se resursi koje je zaouzeo, ali ostaje i dalje proces.
Proces koji je u stanju suspendovan i blokiran prelazi u stanje suspendovan i spreman, ako postaje spreman, tj. ako može da nastavi sa radom (npr. proces pošalje zahtev skeneru da skenira sliku, čeka da skener završi sa radom, pa se blokira, u međuvremenu se suspendira, pa postaje suspendovan i blokiran, kada skener završi skeniranje, proces prelazi iz stanja suspendovan i blokiran u stanje suspendovan i spreman.)
Iz stanja suspendovan i blokiran u stanje blokiran i iz stanja suspendovan i spreman u stanje spreman procesi mogu preći samo explicitno, tj. zahtjevom korisnika.
Iz stanja spreman u stanje suspendovan i spreman proces prelazi iz nekog od sljedećih razloga :
- prevelik broj spremnih procesa – procesi se suspendiraju kao zaštita od preopterećivanja sistema
- explicitno suspendiranje procesa od strane korisnika (npr. da bi korisnik mogao provjeriti neke međurezultate izvršavanja procesa – i nakon toga mogao nastaviti rad bez ponovnog pokretanja cijelog programa.)
- izbjegavanje zaglavljivanja (dead lock) – do zaglavljivanja se dolazi kada dva (ili više) procesa blokiraju jedan drugi u izvršavanju (npr. procesu P1 treba resurs A koji je kod procesa P2, a procesu P2 treba resurs B koji drži P1
– ovi procesi su se zaglavili, jer nijedan od njih ne može nastaviti sa radom – u ovom slučaju jedan od procesa se suspenduje, pa drugi može da odradi svoj zadatak, pa kada se resursi oslobode i prvi će moći da završi svoj rad