Sunteți pe pagina 1din 19

Curs 3

1. Procese
2. Fire de execuție (Threads)

1
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.
2
1.2. Crearea unui proces
Principalele evenimente care duc la crearea
unui 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

3
1.3. Finalizarea execuției unui
proces
Se 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)

4
1.4. Ierarhii de procese
• Un proces părinte creează proprii săi fii care
la rândul lor pot crea alte procese.
• În UNIX ierarhia formată se numește grup
de procese. Un proces părinte nu poate
dezmoșteni procesul fiu.
• În Windows nu există ierarhie de procese.
Un proces părinte dezmoștenește procesul
fiu prin pasarea handler-ului cu care
controlează procesul fiu, unui alt proces.
5
1.5. Starea procesului

6
1.6.1. Implementarea unui proces

Câmpurile tabelei de proces


7
2.1. Fire de execuție-Thread

(a) Trei procese, fiecare deține propriul thread


(b) Un proces cu trei thread-uri
(c) Ce vizualizați în shell la comanda $ ps –t?
8
2.2.1. Modelul unui thread

• Proprietăți deținute de toate thread-urile unui proces


• Proprietăți individuale ale fiecărui thread

9
2.2.2. Modelul unui thread

Fiecare thread deține propria lui stivă


10
2.3.1.Utilizarea thread-urilor

Un procesor word cu trei thread-uri

11
2.3.2.Utilizarea thread-urilor

A multithreaded Web server


12
2.3.3.Utilizarea thread-urilor

Trei modalități de dezvoltare a unui server web

13
2.4. ULT

14
2.5. KLT

15
Implementări hibride

Multiplexarea ULT pe
KLT

16
Thread-uri Pop-Up

17
• Definiți procesul.
De știut...
• Cum se creează un proces.
• Cum se încheie execuția unui proces.
• Caracterizați ierarhia de procese.
• Descrieți starea procesului.
• 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.

18
Bibliografie
• A. Tanembaum, Modern Operating Systems, Prentice Hall
2001, pag 70-97.
• A. Silberschatz, P. Galvin, Operating System Concepts,
John Wiley and Sons Inc., 2005, pag 81-143(capitolul 3 si
4 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.

19

S-ar putea să vă placă și