You are on page 1of 19

Veleučilište Velika Gorica 5.2.

2008

VELEUČILIŠTE VELIKA GORICA

Dretve

Mr.sc. Vladimir Lebinac

Dretve

 Općenito
 Višedretveni modeli
 Izdavanja dretvi
 POSIX dretve
 Dretve u Solarisu
 Dretve u WIN 2000
 Dretve u Linuxu
 Dretve u Javi

Operacijski sustavi I 1
Veleučilište Velika Gorica 5.2.2008

Općenito
 Svaki proces ima adresni prostor i jednu kontrolnu dretvu (Thread).
 Česte su situacije kad je poželjno pojedine zadatke dijeliti na više
podzadataka koji se odvijaju unutar jednog procesa. U suvremene
operacijske sustave uvedeni su mehanizmi koji podržavaju izvođenje
procesa s više dretvi
 Dretve istog procesa koriste isti adresni prostor i rade kvazi
paralelno kao da su odvojeni procesi.
 Princip rada više dretvi koje se izvršavaju unutar jednog procesa je
analogan radu više istovremenih procesa na jednom računalu.
 Dretve imaju neke osobine procesa, te se često nazivaju laki
(lightweight) procesi.
 Dretve nisu toliko međusobno nezavisne kao procesi.
 Sve dretve (unutar nekog procesa) dijele isti skup otvorenih
datoteka, procesa djece, alarma i signala itd.

Svojstva procesa i dretvi

Svojstveno pojedinom Svojstveno pojedinoj


procesu dretvi
Adresni prostor Programski brojač
Globalne varijable Registri
Otvorene datoteke Stog
Procesi djeca Stanje
Tekući alarmi
Signali i rukovatelji
signalima
4

Operacijski sustavi I 2
Veleučilište Velika Gorica 5.2.2008

Zašto dretve?

 U čemu je prednost dretvi u odnosu na


procese?
 S dretvama dobivamo novu mogućnost da paralelni
entiteti dijele isti adresni prostor i sve podatke unutar
njih
 Brzina kreiranja i uništavanja dretvi je veća od brzine
kreiranja i uništavanja procesa.
 Posebna korisnost na višeprocesorskim računalima.

Što obuhvaća dretva?

 Identifikacija dretve (ID Thread)


 Programsko brojilo (program counter)
 Skup registara
 stog – složaj (stack)

Operacijski sustavi I 3
Veleučilište Velika Gorica 5.2.2008

Sadržaj opisnika dretve

Sadržaj opisnika dretve (nast.)


 identifikator procesa - označava kojem procesu pripada dretva (prirodni
broj)
 identifikator dretve - omogućuje međusobno razlikovanje dretvi (prirodni
broj)
 stanje dretve - parametar koji označava u kojem se stanju dretva trenutno
nalazi
 prioritet dretve - parametar koji određuje prednost dretvi pri dodjeljivanju
procesora
 početna adresa dretvenog adresnog prostora i veličina prostora -
opisuje smještanje dretvenog adresnog prostora unutar procesnog adresnog
prostora
 adresa prve instrukcije - sadrži adresu na kojoj je smještena adresa prve
instrukcije dretve
 zadano kašnjenje - parametar koji će odrediti odgađanje izvođenja dretve
za zadani broj perioda otkucaja sata
 prostor za smještanje konteksta - služi nam za smještanje konteksta
dretve onda kada dretva bude prekinuta u svom izvođenju

Operacijski sustavi I 4
Veleučilište Velika Gorica 5.2.2008

Ostali pojmovi vezani uz dretve

 Aktivno stanje dretve (u jednoprocesorskom


sustavu samo jedna dretva je aktivna)
 Pripravno stanje dretve (jedna dretva je
aktivna, a ostale čekaju na dodjelu procesora)
 Blokirana stanja dretve (dretve mogu biti
blokirane čekajući na ispunjenje uvjeta da bi se
nastavile izvoditi)

Lista postojećih procesa,


pasivno stanje
 Sve dretve smještene u adresnom prostoru mogu se povezati u jednu listu,
pa tako njihovi opisnici mogu biti redom pregledani.
 Takovo povezivanje je obavljeno drugim po redu kazaljkama opisnika; prve
po redu kazaljke svakog opisnika služe za povezivanje u druge liste.

10

Operacijski sustavi I 5
Veleučilište Velika Gorica 5.2.2008

Aktivno stanje dretve

 To je ona dretva čije instrukcije procesor upravo izvodi.


 U jednoprocesorskom sustavu samo jedna od dretvi u jednom trenutku
može biti aktivna.
 U listi aktivnih dretvi se može nalaziti najviše jedan opisnik dretve.

11

Pripravno stanje dretve,


red pripravnih dretvi
 Dretve koje nisu aktivne moraju čekati na dodjelu
procesora.
 Postavlja se pitanje, na koji se način odabire dretva koja
će biti prepuštena procesoru, odnosno na koji način se
pridjeljuje ili raspoređuje procesor za obavljanje pojedinih
dretvi.
 U najjednostavnijem obliku se dretve koje čekaju na dodjelu
procesora prepuštaju onim redoslijedom kojim su one postajale
pripravne za izvođenje.
 Drugi se mogući način odabira dretvi može zasnovati na
uvažavanju prioriteta pojedinih dretvi.

12

Operacijski sustavi I 6
Veleučilište Velika Gorica 5.2.2008

Blokirane dretve

 Dretve koje čekaju na ispunjenje nekog od


uvjeta.
 Postoje četiri načina blokiranja:
 čekanjem na binarnom semaforu
 čekanjem na općem semaforu
 čekanjem na istek zadanog intervala kašnjenja
 čekanjem na završetak ulazno-izlazne operacije

13

Jednodretveni i višedretveni procesi

14

Operacijski sustavi I 7
Veleučilište Velika Gorica 5.2.2008

Prednosti višedretvenosti

 Prepoznatljivost po funkciji
 Podjela resursa
 Ekonomičnost
 Povećanje funkcionalnosti u višeprocesorskim
sustavima

15

Primjer višedretvenosti procesa

 Većina zadataka može se podijeliti na tri podzadatka:


 za čitanje ulaznih podataka,
 za potrebna izračunavanja i obradu
 za obavljanje izlaznih operacija
 Zadatak bi, dakle, mogle obavljati tri dretve:
 ulazna dretva (dobavlja ulazne podatke, predaje ih drugoj dretvi
i zatim ponovo prelazi na pribavljanje ulaznih podataka),
 radna dretva (preuzima podatke od ulazne dretve, obavlja
potrebnu obradu, predaje rezultate izlaznoj dretvi i vraća se
ponovo na preuzimanje ulaznih podataka),
 izlazna dretva (preuzima rezultate od radne dretve, obavlja
izlaznu operaciju i vraća se na preuzimanje slijedećih rezultata).
ulazna dretva A B C D E
proces

radna dretva A B C D E
izlazna dretva A B C D E
16

Operacijski sustavi I 8
Veleučilište Velika Gorica 5.2.2008

Primjer višedretvenosti procesa -


komentar

 Ne može se očekivati da će pojedine faze


višedretvenog ostvarenja opisanog zadatka
trajati jednako.
 Potrebno je predvidjeti mehanizme
sinkronizacije dretvi. Ulazna dretva mora na
neki način dojaviti radnoj da je dobavila
slijedeće ulazne podatke. Radna dretva u tom
trenutku možda još obrađuje prethodne
podatke, tako da ne može odmah preuzeti nove,
dakle, novi ulazni podaci trebaju biti negdje
privremeno pohranjeni, i tako dalje.

17

Implementacija dretvi

 Dretve se prilikom implementacije mogu ugraditi


u:
 korisnički prostor – korisničke dretve
 jezgru – jezgrene dretve

 Hibridna implementacija

18

Operacijski sustavi I 9
Veleučilište Velika Gorica 5.2.2008

Korisničke dretve
 Implementacija na nivou korisnika (dretvene biblioteke):
 Prednosti:
 jezgra ne zna ništa o njima što znači da mogu biti implementirane na
sustavu koji ne podržava višedretvenost
 brzo raspoređivanje
 mogući su različiti algoritmi raspoređivanja
 Mane:
 raspoređuju se procesi tako da se dvije dretve u istom procesu ne mogu
izvršavati na dva različita procesora
 blokiranje jedne dretve na sistemskom pozivu blokira cijeli proces
 dretva mora dobrovoljno prepustiti izvršavanje
 Primjeri:
 POSIX p-dretve
 Solaris dretve

19

Korisničke dretve (nast.)

20

Operacijski sustavi I 10
Veleučilište Velika Gorica 5.2.2008

Jezgrene dretve
 Implementacija unutar jezgre (sistemski pozivi)
 Prednosti:
 nema potrebe za neblokirajućim pozivima
 dvije dretve iz istog procesa mogu raditi na različitim procesorima
 Mane:
 svi pozivi koji blokiraju dretvu su implementirani kao sistemski pozivi što
povećava vremenske troškove
 'skuplje' kreiranje i uništavanje dretvi (zbog toga neki sustavi 'recikliraju' dretve)
 Primjeri:
 Windows 95/98/NT/2k/XP
 Solaris
 Tru64 UNIX
 BeOS
 Linux

21

Jezgrene dretve (nast.)

22

Operacijski sustavi I 11
Veleučilište Velika Gorica 5.2.2008

Hibridna implementacija

 Dretve se kreiraju na korisničkoj razini i vežu na


pojedine dretve unutar jezgre
 Svaka dretva unutar jezgre ima nekoliko dretvi
na korisničkoj razini.

23

Hibridna implementacija (nast.)

Multipleksiranje korisničkih dretvi u jednu jezgrenu dretvu

24

Operacijski sustavi I 12
Veleučilište Velika Gorica 5.2.2008

Primjeri modela dretve

(a) Tri procesa savki sa svojom jednom dretvom


(b) Jedan proces sa tri dretve

25

Primjer korištenja dretvi

 Word procesor sa tri dretve


 Pisanje knjige: interaktivno, a u pozadini dretve obavljaju
čitanje unosa s tastaturi i spremanje na disk 26

Operacijski sustavi I 13
Veleučilište Velika Gorica 5.2.2008

Višedretveni modeli

 Više prema jedan – [M→1] (Many-to-One)


 Jedan prema jedan – [1→1] (One-to-One)
 Više prema više – [M→M] (Many-to-Many)

27

Više prema jedan [M→1]

 Više dretvi korisničke


razine mapiraju se u
jednu jezgrenu dretvu
 Koriste se u sustavu koji
podržava jezgrene
dretve

28

Operacijski sustavi I 14
Veleučilište Velika Gorica 5.2.2008

Jedan prema jedan – [1→1]

 Svaka dretva s korisničke razine mapira se u jednu jezgrenu dretvu


 Primjeri:
 Windows 95/98/NT/2000/XP
 OS/2

29

Više prema više – [M→M]

 Više dretvi korisničke


razine mapira se u više
dretvi jezgrene razine
 Operacijski sustav kreira
veći broj jezgrenih dretvi
 Primjeri:
 Solaris 2
 Windows NT/2000 u
kompletu sa ThreadFiber-
om

30

Operacijski sustavi I 15
Veleučilište Velika Gorica 5.2.2008

Izdavanje dretvi (pokretanje)

 Semantika sustavnih poziva: fork() i exec()


 Uništavanje dretve
 Rukovanje signalima
 Redovi dretvi
 Specifični dretveni podaci

31

P-dretve

 POSIX standard (IEEE1003.1c) API za kreiranje


i sinkronizaciju dretvi
 API specifikacije biblioteka dretvi,
implementacija ovisi o dizajnu biblioteke
 Zajedničko svim UNIX-ima

32

Operacijski sustavi I 16
Veleučilište Velika Gorica 5.2.2008

Solaris 2 dretve

33

Procesi u Solarisu

34

Operacijski sustavi I 17
Veleučilište Velika Gorica 5.2.2008

Windows 2000 dretve

 Implementacija principa 1→1


 Svaka dretva sadržava:
 ID dretve
 skup registara
 odvojeni korisnički od jezgrenog stoga
 privatni prostor u memoriji

35

Linux dretve

 U Linux-u govorimo radije posao nego dretva


 Kreiranje dretve izvodi se sustavnim pozivom
clone()
 Clone() kreira posao dijete koji dijeli zajednički
adresni prostor od roditelja

36

Operacijski sustavi I 18
Veleučilište Velika Gorica 5.2.2008

Dretve u Javi

 Java dretve mogu se kreirati:


 proširenjem dretvenih klasa (Thread class)
 implementacijom izvršnog sučelja
 Upravljanje Java dretvama izvodi se Java
virtualnim strojem (JVM)

37

Stanja java dretvi

38

Operacijski sustavi I 19

You might also like