Sunteți pe pagina 1din 25

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

1. Un proces părinte creează proprii săi fii


care la rândul lor pot crea alte procese.
2. În UNIX ierarhia formată se numește grup
de procese. Un proces părinte nu poate
dezmoșteni procesul fiu.
3. Î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 (1)

Proc 1|proc2

6
1.5. Starea procesului(2)

7
1.5. Starea procesului (3)

https://superuser.com/questions/403200/what-is-a-stopped-process-in-linux
8
1.6. Implementarea unui proces

Câmpurile tabelei de proces


9
2.1.1. Fire de execuție-Thread

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


(b) Un proces cu trei thread-uri

10
2.1.2.Fire de execuție

Ce vizualizați în shell la
execuția comenzilor:
$ ps –T
$ pstree –p `pidof proces`
$ ps –e –T | grep PID
$ top –H –p PID

11
2.2.1. Modelul unui thread

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


• Proprietăți individuale ale fiecărui thread

12
2.2.2. Modelul unui thread

Fiecare thread deține propria lui stivă


13
2.3.1.Utilizarea thread-urilor

Un procesor word cu trei thread-uri

14
2.3.2.Utilizarea thread-urilor

A multithreaded Web server


15
2.3.3.Utilizarea thread-urilor

Trei modalități de dezvoltare a unui server web


16
2.3.4. Utilizarea thread-urilor

OS support for threads:


• MSDOS - a single user process and a single thread
• UNIX - multiple user processes but only supports one thread per process
(https://www.informit.com/articles/article.aspx?p=2085690&seqNum=4)
• Windows, Solaris, Linux, Mach, and OS/2 - multiple threads 17
2.4.1 Tipuri de fire de execuție
ULT

18
Fig a Fig b

Fig a Single thread/10 sec


Fig b Multithreads/5 sec
19
2.4.2 Tipuri de fire de execuție
KLT

20
2.4.3. Tipuri de fire de execuție
Implementări hibride

21
2.4.4. Tipuri de fire de execuție
Thread-uri Pop-Up

22
Fire de executie si procese

23
• 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.
• Ce este un semnal? Cum comutam dintr-o stare in alta un proces?
• Ce reprezinta /proc?

24
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.

25

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