OPERATIVNI SISTEMI
Pojam procesa i stanje procesa

    Imamo hardver, operativni sistem i korisničke programe. Vidjeli smo da je jedan od zadataka OS-a da sakrije hardver od aplikacionih programa, odnosno da obezbijedi lakši pristup hardveru. To se ostvaruje preko niza proširenih instrukcija, koji se zovu sistemski pozivi (system calls).
    Procesi
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:

  1. 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
  2. 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
  3. 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)
  4. 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:

  1. proces je suspendovan i spreman (ako je došlo do suspendovanja u stanju spreman)
  2. 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

    Index