Sloj Za Rukovanje Procesima

Osnovni zadaci sloja za rukovanje procesima su stvaranje i unistavanje procesa

Stvaranje procesa obuhvata

  • stvaranje slike procesa
  • stvaranje njegovog deskriptora,
  • kao i pokretanje njegove aktivnosti

Unistenje procesa obuhvata reversan postupak

  • zaustavljanje njegove aktivnosti
  • unistenje njegovog deskiprtora
  • unistenje njegove slike

SLIKA PROCESA

Slika procesa obuhvata niz memorijskih lokacija (mem. lokacija radne memorije) sa uzastopnim adresama.
Ona sadrzi:

  • masinske narebde
  • promenljive (staticke promenljive, i to prvo inicijalizovane pa neinicijalizovane)
  • dinamicke promenljive
  • stek

Podrazumeva se da slika procesa zapocinje od lokacije radne memorije sa najmanjom tj. najnizom adresom, od koje zapocinju masinske naredbe, a zavrsava se na lokaciji radne memorije sa najvisom adresom, na kojoj zapocinje stek.

Podrazumeva se da se stek siri (tj. puni) u smeru nizih adresa.

Iza masinskih naredbi dolaze promenljive, i to prvo inicijalizovane pa onda neinicijalizovane.
Iza ovih promenljivih a izmedju steka se nalazi slobodna radna memorija procesa. Slobodna radna memorija procesa je na raspolaganju procesu za stvaranje novih dinamickih promenljivih kao i steku za sirenje, tj punjenje.

Ovakva organizacija slike procesa uslovljava da proces uvek prvo ugrozi svoju aktivnos, kada njegovi zahtevi za slobodnom memorijom nadmashe njegovu raspolozivu slobodnu memoriju.

Na primer, ako ne postoji nacin da se automatski ustanovi, prilikom punjenja steka da su zahtevi za radnom memorijom nadmasili slobodnu radnu memoriju procesa, tada dolazi do preklapanja steka i promenljivih sa fatalnim ishodom po aktivnost procesa.


DESKRIPTOR PROCESA

Pored slike za aktivnost procesora je vazan i deskriptor procesa, koji sadrzi atribute procesa.
Ovi atributi karakterishu aktivnost procesa.
Oni obuhvataju :

  1. stanje procesa : aktivan, ceka, spreman
  2. sadrzaje procesorskih registara - vrednosti koje su tu zatecene pre poslednjeg prekljucivanja procesora na proces
  3. numericku oznaku vlasnika procesa
  4. oznaku procesa stvaraoca
  5. trenutak pokretanja aktivnosti procesa
  6. ukupno trajanje aktivnosti procesa (odnosno ukupno vreme angazovanja procesora)
  7. podatke o slici procesa(velicina, i polozaj u radnoj i masovnoj memoriji)
  8. podatke o datotekama koje proces koristi
  9. podataka o radnom imeniku procesa
  10. razne podatke neophodne za upravljanje aktivnoscu procesa
  • prioritet procesa
  • polozaj sistemskog steka procesa, koga koristi os u toku obavljanja sistemskih operacija

SISTEMSKE OPERACIJE ZA STVARANJE I UNISTAVANJE PROCESA

Za stvaranje procesa potrebno je :

  • Pristupiti odgovarajucoj izvrsnoj datoteci sa inicijalnom slikom procesa koja izmedju ostalog sadrzi masinske naredbe i pocetne vrednosti (inicijalizovanih) statickih promenljivih programa, ali i podatak o velicini (pojedinih delova) slike procesa.
  • Zauzeti deskriptor procesa kao i dovoljno veliku zonu radne memorije za smestanje slike procesa

Nakon toga dolazi do pravljenja slike procesa na osnovu inicijalne slike procesa i dolazi do popunjavanja atributa deskriptora procesa.
Sve ovo spada u nadleznost sistemske operacije STVARANJA PROCESA Fork() i Exec() .

Ovu operaciju poziva proces stvaralac i ona se obavlja u okviru njegove aktivnosti.
U okviru poziva sistemske operacije stvaranja procesa kao argument se navodi putanja odgovarajuce izvrsne datoteke

Svi atributi deskriptora procesa koji se stvara se ne moraju navoditi kao atributi poziva sistemske operacije stvaranja procesa zato sto se jedan deo njih nasledjuje od procesa tj. iz deskriptora procesa stvaraoca (npr. numericka oznaka vlasnika procesa, podatak o radnom imeniku, njegov prioritet…), a jedan deo nastaje u toku stvaranja procesa (npr. podaci o slici procesa).

Kada se u okviru stvaranja procesa stigne do pokretanja aktivnosti procesa moguce je prekljucivanje procesora sa procesa stvaraoca na stvarani proces. To se desi ako je prioritet stvaranog procesa veci tj visi od prioriteta procesa stvaraoca. U tom slucaju menja se stanje procesa stvaraoca, koji dospeva medju spremne procese, u suprotnom medju spremne procese dospeva proces koji se stvara .

Za unistavanje procesa je potrebno :

  • Osloboditi njegov deskriptor, i zonu radne memorije sa slikom procesa.

Ovo spada u nadleznost sistemske operacije unistenja procesa exit(). Nju automatski poziva proces na kraju svoje aktivnosti, cime izaziva svoje samounistenje.

Unistenje procesa se zavrsava prekljucivanjem procesora sa unistavanog procesa na neki od spremnih procesa.

U okviru poziva sistemske operacije unistenja moze se proslediti argument posredstvom koga unistavani proces moze da saopsti svom stvaraocu svoje zavrsno stanje (informaciju o aktivnosti unistavanog procesa - da li je bila uspesna ili ne).
Da bi proces stvaraoc iskoristio ovakvu povratnu informaciju od stvorenog procesa, on mora pozivom posebne sistemske operacije wait() da zatrazi zaustavljanje svoje aktivnosti i tako omoguci prekljucivanje procesora na stvarani proces. U ovom slucaju proces stvaraoc ne dospeva medju spremne procese vec medju procese u stanju cekanja, jer ceka kraj aktivnosti stvorenog procesa. Takodje u ovom slucaju sistemska operacija unistenja takodje ima zadatak da prevede proces stvaraoc u spremne procese, i tako omoguci njegovu aktivnost.

Sistemska operacija unistenja procesa se automtski poziva prilikom izuzetaka (nepopravljivih prekida) u toku aktivnosti procesa.


ZAMENA SLIKA PROCESA

Najveci moguci broj slika procesa koje mogu istovremeno da postoje u radnoj memoriji se naziva stepen multiprogramiranja (degree of multiprogramming)

Sto je stepen multiprogramiranja veci, to je i veca verovatnoca da je procesor zaposlen, jer je veca verovatnoca da je neki proces spreman (da uopste postoji spreman proces).

Stepen multiprogramiranja zavisi od kolicine slobodne radne memorije.

Kada broj istovremeno postojecih procesa dostigne stepen multiprogramiranja stvaranje novih procesa postaje probleamticno.
U ovoj situaciji moguce resenje je da se slika nekog od manje prioritetnih procesa privremeno prebaci u masovnu memoriju i tako oslobodi memorija, prostor u radnoj memoriji za sliku novog procesa.

Miroslav Hajduković - Operativni sistemi (problemi i struktura)

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.