{"id":1205,"date":"2020-12-10T15:28:29","date_gmt":"2020-12-10T14:28:29","guid":{"rendered":"https:\/\/ssntb.org\/mirozaric\/?p=1205"},"modified":"2020-12-10T15:28:29","modified_gmt":"2020-12-10T14:28:29","slug":"pojam-procesa-i-stanje-procesa","status":"publish","type":"post","link":"https:\/\/ssntb.org\/mirozaric\/2020\/12\/10\/pojam-procesa-i-stanje-procesa\/","title":{"rendered":"Pojam procesa i stanje procesa"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Imamo hardver, operativni sistem i korisni\u010dke programe. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vidjeli smo da je jedan od zadataka OS-a da sakrije hardver od aplikacionih programa, odnosno da obezbijedi lak\u0161i pristup hardveru. To se ostvaruje preko niza pro\u0161irenih instrukcija, koji se zovu <strong>sistemski pozivi <\/strong>(<em>system calls<\/em>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Procesi<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Procesi predstavljaju jedan od najva\u017enijih koncepata operativnih sistema. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Program je niz instrukcija koji ostvaruje neki algoritam. \u2022Proces je program u statusu izvr\u0161avanja, zajedno sa svim resursima koji su potrebni za rad programa. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zna\u010di: program je fajl na disku. Kada se taj fajl u\u010dita u memoriju i po\u010dinje da se izvr\u0161ava dobijemo proces.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stanja procesa<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Procesi se nalaze u jednom od sljede\u0107ih stanja: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>proces se izvr\u0161ava (RUNNING) &#8211; procesor upravo izvr\u0161ava kod ovog procesa <\/li><li>proces je spreman, ali se ne izvr\u0161ava (READY) &#8211; proces je dobio sve potrebne resurse, spreman je za izvr\u0161avanje, \u010deka procesor <\/li><li>proces je blokiran, \u010deka na ne\u0161to (npr. \u010deka \u0161tampa\u010d da zavr\u0161i sa \u0161tampanjem \u2013 BLOCKED) &#8211; za dalji rad procesa potrebni su neki resursi, koji trenutno nisu na raspolaganju, \u010deka IO operaciju, rezultat nekog drugog procesa itd.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"635\" height=\"547\" src=\"https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2020\/12\/image-10.png\" alt=\"\" class=\"wp-image-1206\" srcset=\"https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2020\/12\/image-10.png 635w, https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2020\/12\/image-10-300x258.png 300w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Imamo 4 prelaska izme\u0111u razli\u010ditih stanja:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>proces prelazi iz stanja IZVR\u0160AVANJA u stanje BLOKIRAN kada su mu za dalje izvr\u0161avanje potrebni neki resursi, koji trenutno nisu dostupni. Ovu promjenu stanja vr\u0161i sam proces: predaje zahtjev za neki resurs, pa \u010deka taj resurs. Npr.: po\u0161alje zahtjev skeneru da skenira neku sliku, i \u010deka rezultat skeniranja <\/li><li>proces prelazi iz stanja IZVR\u0160AVANJA u stanje SPREMAN ako mu istekne dodijeljeno procesorsko vrijeme (time-sharing) \u2013 tada proces prelazi u listu procesa koji \u010dekaju na <\/li><li>proces prelazi iz stanja SPREMAN u stanje IZVR\u0160AVANJA kada se procesor oslobodi i mo\u017ee da izvr\u0161ava kod posmatranog procesa (izabere se iz liste \u010dekanja po nekom kriterijumu i izvr\u0161ava se) <\/li><li>proces prelazi iz stanja BLOKIRAN u stanje SPREMAN, kada do\u0111e do potrebnih resursa i spreman je za dalji rad, ali procesor trenutno nije slobodan, pa prelazi u listu \u010dekanja (npr. skener je zavr\u0161io skeniranje, i sad proces mo\u017ee nastaviti sa radom (spreman je), ali procesor je trenutno zauzet izvr\u0161avanjem nekog drugog procesa, pa mora da \u010deka u redu\u2026 )<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Suspendovani procesi<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kod nekih operativnih sistemima procesi mogu biti i <strong>suspendovani<\/strong> (<em>suspended<\/em>). Na taj na\u010din dobijamo jo\u0161 dva stanja: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>proces je suspendovan i spreman (ako je do\u0161lo do suspendovanja u stanju spreman) <\/li><li>proces je suspendovan i blokiran (ako je do\u0161lo do suspendovanja u stanju blokiran). <\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Proces koji je suspendovan, prestaje da se takmi\u010di za resurse, osloba\u0111aju se resursi koje je zaouzeo, ali ostaje i dalje proces.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proces koji je u stanju suspendovan i blokiran prelazi u stanje suspendovan i spreman, ako postaje spreman, tj. ako mo\u017ee da nastavi sa radom (npr. proces po\u0161alje zahtev skeneru da skenira sliku, \u010deka da skener zavr\u0161i sa radom, pa se blokira, u me\u0111uvremenu se suspendira, pa postaje suspendovan i blokiran, kada skener zavr\u0161i 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\u0107i samo explicitno, tj. zahtjevom korisnika. Iz stanja spreman u stanje suspendovan i spreman proces prelazi iz nekog od sljede\u0107ih razloga :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>prevelik broj spremnih procesa <\/strong>\u2013 procesi se suspendiraju kao za\u0161tita od preoptere\u0107ivanja sistema <\/li><li><strong>explicitno suspendiranje procesa od strane korisnika <\/strong>(npr. da bi korisnik mogao provjeriti neke me\u0111urezultate izvr\u0161avanja procesa \u2013 i nakon toga mogao nastaviti rad bez ponovnog pokretanja cijelog programa.) <\/li><li><strong>izbjegavanje zaglavljivanja<\/strong> (<em>dead lock<\/em>) \u2013 do zaglavljivanja se dolazi kada dva (ili vi\u0161e) procesa blokiraju jedan drugi u izvr\u0161avanju (npr. procesu P1 treba resurs A koji je kod procesa P2, a procesu P2 treba resurs B koji dr\u017ei P1<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">ovi procesi su se zaglavili, jer nijedan od njih ne mo\u017ee nastaviti sa radom \u2013 u ovom slu\u010daju jedan od procesa se suspenduje, pa drugi mo\u017ee da odradi svoj zadatak, pa kada se resursi oslobode i prvi \u0107e mo\u0107i da zavr\u0161i svoj rad<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imamo hardver, operativni sistem i korisni\u010dke programe. Vidjeli smo da je jedan od zadataka OS-a da sakrije hardver od aplikacionih programa, odnosno da obezbijedi lak\u0161i pristup hardveru. To se ostvaruje preko niza pro\u0161irenih instrukcija, koji se zovu sistemski pozivi (system calls). Procesi Procesi predstavljaju jedan od najva\u017enijih koncepata operativnih sistema. Program je niz instrukcija koji&hellip; <br \/> <a class=\"button small blue\" href=\"https:\/\/ssntb.org\/mirozaric\/2020\/12\/10\/pojam-procesa-i-stanje-procesa\/\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-1205","post","type-post","status-publish","format-standard","hentry","category-20"],"_links":{"self":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts\/1205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/comments?post=1205"}],"version-history":[{"count":1,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts\/1205\/revisions"}],"predecessor-version":[{"id":1207,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts\/1205\/revisions\/1207"}],"wp:attachment":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/media?parent=1205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/categories?post=1205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/tags?post=1205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}