You are on page 1of 5

Niti

Prosti i Visenitni procesi slika

Nit (thread) je osnovna jedinica korišcenja procesora.Višenitni proces sadrži nekoliko


tokova kontrole (tj. niti) unutar istog adresnog prostora. Sve niti istog procesa
sa njim dele stanje i resurse, nalaze se u istom adresnom prostoru i pristupaju istim
podacima. Svaka nit unutar procesa medutim ima sopstveni identifikator, stanje
(Ready,Running, Waiting itd.), programski brojac, sadržaj registara i stek
Rad sa nitima

• Semantika fork() i exec() sistemskih poziva


-Unix koristi oba sistemska poziva

• Poništavanje niti
-Prekidanje pre nego sto se zavrsi
-Dva opsta pristupa:

1.Asihrono ponistavanje- prekida nit odmah


2.Odlozeno- dozvaljava da ciljna nit periodicno proverava da li treba da bude ponistena

• Rukovanje signalima :

-Signali se koriste u UNIX sistemima da informišu proces da se poseban događaj


pojavio

- Signal handler rukuje signalima procesa


1.Poseban događaj generiše signal
2.Signal se isporučuje procesu
3.Signalom se rukuje

• Spremišta niti
Kreira vise niti u spremistu-bazenu dok cekaju na rad

• Specifične podaci za nit


Dozvoljava da svaka nit ima svoju sopstevenu kopiju podataka

• Aktivacija raspoređivača
Aktiviranje rasporedjivaca obezbedjuje upcalls-komunikacioni mehanizam iz
kernela u biblioteku niti

Pthreads
Prednosti niti

Nova nit se unistava I kreira mnogo brze nego nov process sto cini programiranje
interaktivnijim

Niti omogucuju efikasnije koriscenje resursa

Prelazak izmedju niti istog procesa je mnogo brzi nego prelazak izmedju razlicitih procesa.

Niti omogucuju efikasniju komunikaciju izmedju programa koji se zavrsavaju, jer niti unutar
istog procesa dele memoriju I datoteke pa mogu da komuniciraju bez podsredstva jezgra
operativnog sistema.

Linux niti

Linux ih oznacava kao tasks radije nego threads

Kreiranje niti je dato clone() sistemsim pozivom

clone() dozvoljava child tasku-u da deli adresni proctor parent task-a

Procesi unix i 4 slike :

Slajdovi 12-13

You might also like