Programare multi-threading

Imagine preview
(7/10 din 1 vot)

Acest laborator prezinta Programare multi-threading.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier docx de 9 pagini .

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domeniu: Retele

Extras din document

1. Scopul lucrării:

Realizarea firelor de execuție în C#.

2. Obiectivul lucrării:

Crearea firelor de execuție în C# și utilizarea tehnicilor de sincronizare în cadrul aplicațiilor concurente C#.

3. Programare multithreading

3.1. Definiția procesului

Un proces sau task, este un calcul care poate fi executat concurent (în paralel) cu alte calcule. El este o abstractizare a activității procesorului, fiind considerat ca un program în execuție. Existența unui proces este condiționată de existența a trei factori:

- o procedură - o succesiune de instrucțiuni dintr-un set predefinit de instrucțiuni, cu rolul de descriere a unui calcul - descrierea unui algoritm.

- un procesor - dispozitiv hardware/software ce recunoaște și poate executa setul predefinit de instrucțiuni, și care este folosit, în acest caz, pentru a executa succesiunea de instrucțiuni specificată în procedură;

- un mediu - constituit din partea din resursele sistemului: o parte din memoria internă, un spațiu disc destinat unor fișiere, periferice magnetice, echipamente audio-video etc. - asupra căruia acționează procesorul în conformitate cu secvența de instrucțiuni din procedură.

Trebuie deci făcută deosebirea dintre proces și program. Procesul are un caracter dinamic, el precizează o secvență de activități în curs de execuție, iar programul are un caracter static, el numai descrie textual această secvență de activități.

Evoluția în paralel a două procese trebuie înțeleasă astfel:

Dacă Ii și Ij sunt momentele de început a două procese Pi și Pj, iar Hi și Hj sunt momentele lor de sfârșit, atunci Pi și Pj sunt executate concurent dacă:

max (Ii, Ij) <= min (Hi, Hj)

3.2. Definiția threadului

Un thread se definește ca o entitate de execuție din interiorul unui proces, compusă dintr-un context și o secvență de instrucțiuni de executat.

Printre caracteristici de bază ale acestor entități:

- Thread-urile sunt folosite pentru a crea programe formate din unități de procesare concurentă.

- Entitatea thread execută o secvență dată de instrucțiuni, încapsulate în funcția thread-ului.

- Execuția unui thread poate fi întreruptă pentru a permite procesorului să dea controlul unui alt thread.

- Thread-urile sunt tratate independent, fie de procesul însuși, fie de nucleul sistemului de operare. Componenta sistem (proces sau nucleu) care gestionează thread-urile depinde de modul de implementare a acestora.

- Operațiile de lucru cu thread-uri sunt furnizate cu ajutorul unor librării de programe (C, C++) sau cu ajutorul unor apeluri sistem (în cazul sistemelor de operare: Windows NT, Sun Solaris).

Esența conceptuală a threadului este aceea că execută o procedură sau o funcție, în cadrul aceluiași proces, concurent cu alte thread-uri. Contextul și zonele de date ale procesului sunt utilizate în comun de către toate thread-urile lui.

Un program multi-thread poate să obțină o performanță îmbunătățită prin execuția concurentă și/sau paralelă a thread-urilor. Execuția concurentă a thread-urilor (sau pe scurt, concurență) înseamnă că mai multe thread-uri sunt în progres, în același timp. Execuția paralelă a thread-urilor (sau pe scurt, paralelism) apare când mai multe thread-uri se execută simultan pe mai multe procesoare.

Fisiere in arhiva (1):

  • Programare multi-threading.docx

Bibliografie

1. Rodney Ringler - Programare Multi-Threading, anul publicării: 2014
2. Дeниc Рeчкyнoв - Пapaллeльнoe пpoгpaммиpoвaниe в .NET Framework 4.0, http://www.enterra.ru/blog/parallel-programming-in-net-framework-4-0/, data publicării: 17.01.2013 , data accesării: 28.03.2015