Programare multi-threading

Laborator
7/10 (1 vot)
Domeniu: Rețele
Conține 1 fișier: docx
Pagini : 9 în total
Cuvinte : 1568
Mărime: 56.52KB (arhivat)
Cost: Gratis

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.

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

Preview document

Programare multi-threading - Pagina 1
Programare multi-threading - Pagina 2
Programare multi-threading - Pagina 3
Programare multi-threading - Pagina 4
Programare multi-threading - Pagina 5
Programare multi-threading - Pagina 6
Programare multi-threading - Pagina 7
Programare multi-threading - Pagina 8
Programare multi-threading - Pagina 9

Conținut arhivă zip

  • Programare multi-threading.docx

Alții au mai descărcat și

Totul despre Retele

TOTUL DESPRE RETELE Inceputul Retelele sunt clasificate in retele peer-to-peer si retele bazate pe server. Intr-o retea peer-to-peer nu exista...

Intrebari Licenta Retele de Calculatoare

protocol de nivel aplicatie este utilizat pentru a a translata nume de host (adrese URL) in adrese IP? DNS 2. Dati un exemplu de adresa valida de...

Administrarea Rețelelor

Executarea lucrarilor: Figura 1. Packet tracer 6.5.1.3 Am efecutat configurari asupra Routeru-lui cit si a celor doua Switchiriu utilizind...

Regulile Jocului High Life

module sim(clk, high_life, border,i,j, cycle, mem_row, mem_col, mem_we, world_out, world_in,out); input clk; // semnalul de ceas input high_life;...

Ai nevoie de altceva?