1 / 26

Curs 3

Curs 3. Procese Fire de execu ție ( Threads ). 1.1. Modelul procesului. Bucătarul ≡ UCP Rețeta ≡ Programul Ingredientele ≡ Date de intrare Citirea rețetei Adăugarea ingredientelor ≡ Procesul Coacerea tortului.

Download Presentation

Curs 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Curs 3 • Procese • Fire de execuție (Threads)

  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.

  3. 1.2. Crearea unui proces Principalele evenimente care duc la crearea unui proces sunt: • Inițializarea sistemului • Execuția unui apel de sistem • Cererea unui utilizator • La execuția unor prelucrări pe loturi

  4. 1.3. Finalizarea execuției unui proces Se realizează în următoarele condiții: • Normal exit (voluntar) • Error exit (voluntar) • Fatal error (involuntar) • Prin apelul de sistem kill (involuntar)

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

  6. 1.5. Starea procesului

  7. 1.6.1. Implementarea unui proces Câmpurile tabelei de proces

  8. 1.6.2. Implementarea unui proces • Fiecare dispozitiv de I/O are asociat un vector de întreruperi care conține adresele procedurilor serviciului de întreruperi. Să presupunem ca procesul1 se află în execuție și are loc o întrerupere hardware. • La momentul întreruperii PC, PSW(program status word) și regiștrii aferenți procesului sunt stocați în stivă. • Computerul trece apoi la adresa specificată de vectorul de întrerupere (din acest moment părăsim zona hardware) • La apelul procedurii, se salvează regiștrii procesului1 în tabela de procese (se realizează în cod de asamblare). • Se golește stiva și SP punctează către o stivă temporară utilizată de rutina procesului2(se realizează în cod de asamblare). • Se execută rutina procesului2 și se apelează o procedură scrisă în limbaj evoluat (C) care realizează task-ul pentru care procesul2 a fost lansat. • Planificatorul de procese preia controlul și decide care proces va fi lansat ulterior procesului2.

  9. 2.1. Fire de execuție-Thread (a) Trei procese, fiecare deține propriul thread (b) Un proces cu trei thread-uri

  10. 2.2.1. Modelul unui thread • Proprietăți deținute de toate thread-urile unui proces • Proprietăți individuale ale fiecărui thread

  11. 2.2.2. Modelul unui thread Fiecare thread deține propria lui stivă

  12. 2.3.1.Utilizarea thread-urilor Un procesor word cu trei thread-uri

  13. 2.3.2.Utilizarea thread-urilor A multithreaded Web server

  14. 2.3.3.Utilizarea thread-urilor Trei modalități de dezvoltare a unui server web

  15. 2.4. ULT

  16. 2.5. KLT

  17. Implementări hibride Multiplexarea ULT pe KLT

  18. Thread-uri Pop-Up

  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.

  20. Întrebare Care din următoarele NU este un avantaj al folosirii thread-urilor? • timp de comutare mai rapid • partajare facilă a informației • eliminarea completă a apelurilor de sistem • planificare avantajoasă pe sisteme multiprocesor

  21. Răspuns corect: B

  22. Întrebare Care din următoarele nu este un tip de model de thread-uri? • one-to-one • one-to-many • many-to-one • many-to-many

  23. Răspuns corect: A

  24. Întrebare Care din următoarele este partajată între thread-uri? • Stiva • Registrele • Handler de semnal • Variabilele globale

  25. Răspuns corect: D

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

More Related