Sunteți pe pagina 1din 23

Curs 3

1. Procese 2. Fire de execuie (Threads)

1.1. Modelul procesului

Buctarul Reeta Ingredientele Citirea reetei Adugarea ingredientelor Coacerea tortului

UCP Programul Date de intrare Procesul

Un proces are un program, date de intrare, date de ieire i o stare.

1.2. Crearea unui proces


Principalele evenimente care duc la crearea unui proces sunt: 1. Iniializarea sistemului 2. Execuia unui apel de sistem 3. Cererea unui utilizator 4. La execuia unor prelucrri pe loturi

1.3. Finalizarea execuiei unui proces


Se realizeaz n urmtoarele condiii: 1. Normal exit (voluntar) 2. Error exit (voluntar) 3. Fatal error (involuntar) 4. Prin apelul de sistem kill (involuntar)

1.4. Ierarhii de procese


Un proces printe creeaz proprii si fii care la rndul lor pot crea alte procese. n UNIX ierarhia format se numete grup de procese. Un proces printe nu poate dezmoteni procesul fiu. n Windows nu exist ierarhie de procese. Un proces printe dezmotenete procesul fiu prin pasarea handler-ului cu care controleaz procesul fiu, unui alt proces.
5

1.5. Starea procesului

1.6.1. Implementarea unui proces

Cmpurile tabelei de proces


7

1.6.2. Implementarea unui proces

2.1. Fire de execuie-Thread

(a) Trei procese, fiecare deine propriul thread (b) Un proces cu trei thread-uri
9

2.2.1. Modelul unui thread

Proprieti deinute de toate thread-urile unui proces Proprieti individuale ale fiecrui thread

10

2.2.2. Modelul unui thread

Fiecare thread deine propria lui stiv


11

2.3.1.Utilizarea thread-urilor

Un procesor word cu trei thread-uri


12

2.3.2.Utilizarea thread-urilor

A multithreaded Web server


13

2.3.3.Utilizarea thread-urilor

Trei modaliti de dezvoltare a unui server web

14

2.4. ULT

15

2.5. KLT

16

Implementri hibride
Multiplexarea ULT pe KLT

17

Thread-uri Pop-Up

18

Definii procesul. Cum se creeaz un proces. Cum se ncheie execuia unui proces. Caracterizai ierarhia de procese. Descriei starea procesului. Cum se realizeaz implementarea unui proces. Ce reprezint un thread. Ce nseamn multithreading. Descriei modelul unui thread. Justificai necesitatea thread-urilor. Dai exemplu de utilizare a thread-urilor. Ce reprezint o main cu stri finite? Care sunt avantajele i dezavantajele thread-urilor? Descriei ULT, KLT. Care sunt avantajele i dezavantajele ULT, KLT? Caracterizai implementrile hibride ale thread-urilor. Descriei thread-urile pop-up.

De tiut...

19

ntrebare
Care din urmtoarele NU este un avantaj al folosirii thread-urilor?
a) b) c) d) timp de comutare mai rapid partajare facil a informaiei eliminarea complet a apelurilor de sistem planificare avantajoas pe sisteme multiprocesor

20

ntrebare
Care din urmtoarele nu este un tip de model de thread-uri?
a) b) c) d) one-to-one one-to-many many-to-one many-to-many

21

ntrebare
Care din urmtoarele este partajat ntre thread-uri?
a) b) c) d) Stiva Registrele Handler de semnal Variabilele globale

22

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

23