Pređi na sadržaj

Vikigimnazijalac:Operativni sistemi/Kontrolni blok procesa

Izvor: Викикњиге

Da bi operativni sistemi bili u mogućnosti da vode preciznu evidenciju o procesima, obično se koriste strukture podataka koje čuvaju informacije o svakom pokrenutom procesu. Ova dinamička struktura se naziva Kontrolni blok procesa i sadrži najznačajnije podatke koji omogućavaju identifikaciju i upravljanje procesima. Nikad se ne nalazi u istom memorijskom područiju kao i proces. Zbog podataka u kontrolnom bloku proces se može prekidati i nastavljati više puta.

U većini implementacija operativnih sistema kontrolni blok procesa sadrži sledeće informacije o procesima:

  • Jedinstveni identifikator procesa (Process ID – PID) – broj koji proces dobija u trenutku pokretanja. Svi procesi na jednom sistemu imaju različite PID-ove, čime je sistemu omogućeno da ih razlikuje na krajnje jednostavan način.
  • Stanje procesa – informacija o trenutnom stanju u kojem se proces nalazi. Na primer, proces se može naći u nekom od stanja koja su definisana u prethodnom tekstu: Spreman, Izvršavanje, Čekanje, Suspendovan i spreman itd.
  • Programski brojač – čuva informaciju o sledećoj instrukciji koju proces treba da izvrši.
  • Sadržaj registara procesora – vrednosti koje se nalaze u registrima kako bi proces posle gubitka prava da koristi procesor mogao da nastavi sa radom tamo gde je zaustavljen.
  • Prioritet procesa – informacija o važnosti procesa u odnosu na ostale procese u sistemu.
  • Adresa memorije gde se nalazi proces – pokazivači na adrese u memoriji gde se nalaze segmenti procesa.
  • Adrese zauzetih resursa – kako bi operativni sistem imao informaciju o tome na kojim lokacijama treba da traži potrebne podatke.

Polja koje čine kontrolni blok se mogu svrstati u one koje se odnose na:

  • Procese;
  • Memoriju;
  • Fajlove.

Operativni sistemi obezbeđuju efikasne mehanizme za manipulaciju kontrolnim blokovima procesa kako bi se realizovali sledeći zadaci:

  • Kreiranje kontrolnog bloka za novi proces;
  • Uništavanje kontrolnog bloka procesa koji se izvršio;
  • Menjanje stanja procesa;
  • Menjanje prioriteta procesa;
  • Izbor procesa za izvršavanje.

Prebacivanje konteksta predstavlja postupak kojim se proces koji se trenutno izvršava na procesoru prekida, pamte njegovi parametri, a zatim se umesto njega pokreće neki drugi proces i pri tome se učitavaju parametri drugog procesa.

Proces P0 je u stanju izvršavanja, ali bi trebalo da se prekine i da proces P1 krene da se izvršava. Prvo se stanje P0 upisuje u odgovarajući kontrolni blok, zatim se učitava kontrolni blok novog procesa i on može da nastavi sa izvršavanjem. Programski brojač procesa P1 dohvata sledeću instrukciju i on počinje da se izvršava. Kada se, iz nekog razloga donese odluka da postoji potreba da se P1 prekine, a proces P0 nastavi sa izvršavanjem, upisuju se podaci o izvršavanju P1 u njegov kontrolni blok, a učitavaju se podaci procesa P0.

Modul koji je odgovoran da izvršava prebacivanje konteksta često se naziva dispečer (Dispatcher). On je zadužen za punjenje registara procesa, prebacivanje u korisnički režim rada i skok na odgovarajuću lokaciju u korisničkom programu kako bi se on nastavio.