curs03_procese si fire de executie
TRANSCRIPT
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 1/23
1
Curs 3
1. Procese2. Fire de execuție (Threads)
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 2/23
2
1.1. Modelul procesului
Bucătarul ≡ UCP
Rețeta ≡ Programul
Ingredientele ≡ Date de intrare
Citirea rețetei
Adăugarea ingredientelor ≡ Procesul Coacerea tortului
Un proces are un program, date de intrare, date de ieșire și o
stare.
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 3/23
3
1.2. Crearea unui proces
Principalele evenimente care duc la creareaunui proces sunt:
1. Inițializarea sistemului 2. Execuția unui apel de sistem
3. Cererea unui utilizator
4. La execuția unor prelucrări pe loturi
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 4/23
4
1.3. Finalizarea execuției unui
procesSe realizează în următoarele condiții:
1. Normal exit (voluntar)
2. Error exit (voluntar)
3. Fatal error (involuntar)
4. Prin apelul de sistem kill (involuntar)
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 5/23
5
1.4. Ierarhii de procese
• Un proces părinte creează proprii săi fii carela rândul lor pot crea alte procese.
• În UNIX ierarhia formată se numește grupde procese. Un proces părinte nu poatedezmoșteni procesul fiu.
• În Windows nu există ierarhie de procese.Un proces părinte dezmoștenește procesulfiu prin pasarea handler-ului cu carecontrolează procesul fiu, unui alt proces.
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 6/23
6
1.5. Starea procesului
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 7/237
1.6.1. Implementarea unui proces
Câmpurile tabelei de proces
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 8/238
1.6.2. Implementarea unui proces
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 9/239
2.1. Fire de execuție-Thread
(a) Trei procese, fiecare deține propriul thread (b) Un proces cu trei thread-uri
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 10/2310
2.2.1. Modelul unui thread
• Proprietăți deținute de toate thread-urile unui proces• Proprietăți individuale ale fiecărui thread
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 11/2311
2.2.2. Modelul unui thread
Fiecare thread deține propria lui stivă
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 12/2312
2.3.1.Utilizarea thread-urilor
Un procesor word cu trei thread-uri
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 13/2313
2.3.2.Utilizarea thread-urilor
A multithreaded Web server
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 14/23
14
2.3.3.Utilizarea thread-urilor
Trei modalități de dezvoltare a unui server web
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 15/23
15
2.4. ULT
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 16/23
16
2.5. KLT
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 17/23
17
Implementări hibride
Multiplexarea ULT peKLT
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 18/23
18
Thread-uri Pop-Up
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 19/23
19
De știut... • Definiți procesul.• Cum se creează un proces. • Cum se încheie execuția unui proces. • Caracterizați ierarhia de procese. • Descrieți starea procesului. • Cum se realizează implementarea unui proces. • Ce reprezintă un thread. • Ce înseamnă multithreading.
• Descrieți modelul unui thread. • Justificați necesitatea thread-urilor.• Dați exemplu de utilizare a thread-urilor.• Ce reprezintă o mașină cu stări finite? • Care sunt avantajele și dezavantajele thread-urilor?
• Descrieți ULT, KLT. • Care sunt avantajele și dezavantajele ULT, KLT? • Caracterizați implementările hibride ale thread-urilor.• Descrieți thread-urile pop-up.
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 20/23
20
Întrebare
Care din următoarele NU este un avantaj al
folosirii thread-urilor?
a) timp de comutare mai rapid b) partajare facilă a informației c) eliminarea completă a apelurilor de sistem d) planificare avantajoasă pe sisteme
multiprocesor
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 21/23
21
Întrebare
Care din următoarele nu este un tip de model
de thread-uri?
a) one-to-one b) one-to-many
c) many-to-one
d) many-to-many
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 22/23
22
Întrebare
Care din următoarele este partajată între
thread-uri?
a) Stiva b) Registrele
c) Handler de semnal
d) Variabilele globale
7/28/2019 Curs03_Procese Si Fire de Executie
http://slidepdf.com/reader/full/curs03procese-si-fire-de-executie 23/23
23
Bibliografie
• A. Tanembaum, Modern Operating Systems, Prentice Hall2001, pag 70-97.
• A. Silberschatz, P. Galvin, Operating System Concepts,
John Wiley and Sons Inc., 2005, pag 81-143(capitolul 3 si4 f ără cap 3.4).
• A. Tanembaum, Modern Operating Systems, Prentice Hall,2007, pag 83-117.
• http://elf.cs.pub.ro/so/wiki/cursuri/curs-08 • Gh. Dodescu, Sisteme de operare, Ed. Economică, 2003, pag 37-65.