Sunteți pe pagina 1din 5

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare, Informatică și Microelectronică
Catedra: Informatică și Ingineria Sistemelor

Raport
Disciplina: Programarea în Rețea

Lucrarea de laborator nr.2


Tema: Programare multi-threading

A efectuat student: Borta Sergiu, gr. TI-183

A controlat: Cebotari Daria

Chișinău 2020
Obiectivele lucrării: înțelegerea modelelor de execuție concurentă și cunoașterea tehnicilor
esențiale de sincronizare ale activităților bazate pe operațiile atomare ale semaforului; obiectivul
specific constând în crearea unei aplicații Java ce ar utiliza sigur diverse structuri într-un context
de execuție concurentă
Realizarea firelor de execuţie în Java/C#. Proprietăţile firelor. Stările unui fir de execuţie.
Lansarea, suspendarea şi oprirea unui fir de execuţie. Grupuri de Thread-uri. Elemente pentru
realizarea comunicării şi sincronizării.
Varianta 1:

Întrebari laboratorul 2 PROGRAMARE MULTI-THREADING:


1. Ce este un proces?
2. Ce este un fir de executie?
3. Diferenta dintre proces si fir de executie?
4. Definitia la Programarea concurenta?
5. Cind apare ,,deadlock”?
6. Ce este Semafor?
7. Ce este Mutex?
8. Synchronization?
1. Ce este un proces?
Un proces este un program activ, adică un program aflat în execuție. Este mai mult decât
codul programului, deoarece include contorul de programe, stiva de proces, registre,
codul programului etc.
2. Ce este un fir de executie?
Firul de execuție sau thread-ul este un mic proces sau task, având propriile instrucțiuni și
date.
3. Diferenta dintre proces si fir de executie?
Un thread este un proces ușor care poate fi gestionat independent de un
programator. Îmbunătățește performanța aplicației folosind paralelismul. Un fir
partajează informații precum segmentul de date, segmentul de cod, fișiere etc. cu firele de
peer, în timp ce conține propriile registre, stivă, contor etc.
4. Definitia la Programarea concurenta?
Programarea concurenta este activitatea de construire a unui program continand
procese multiple care se executa in paralel. Aceste procese sunt in competitie
pentru accesarea resurselor critice si coopereaza pentru realizarea anumitor task-uri. 
Program care in timpul executarii sale creeaza mai multe procese care se executa
intr-un paralelism abstract,adica nu neaparat pe procesoare distincte.
Deadlock
Un blocaj se întâmplă atunci când două fire așteaptă fiecare o resursă deținută de celălalt,
deci niciunul nu poate continua.
Semafor
Semaforul este o primitivă de sincronizare a proceselor și firelor, bazată pe un contor, pe
care puteți efectua două operații atomice: creșterea și scăderea valorii cu una, în timp ce operația
de decrementare pentru valoarea zero a contorului este blocare. Servește pentru construirea unor
mecanisme de sincronizare mai complexe și este utilizat pentru a sincroniza sarcini de rulare
paralele, pentru a proteja transmisia de date prin memoria partajată, pentru a proteja secțiunile
critice și pentru a controla accesul la hardware.
Mutex
Un Mutex este un steag care se exclude reciproc. Acționează ca un pastrator de poartă
către o secțiune de cod care permite un fir de acces și blochează accesul la toate celelalte. Acest
lucru asigură faptul că codul controlat va fi lovit doar de un singur fir la un moment dat.
Asigurați-vă că eliberați mutex-ul când ați terminat.
Forma completă a Mutex este obiectul de excludere reciprocă. Este un tip special de
semafor binar folosit pentru controlul accesului la resursa partajată. Acesta include un mecanism
de moștenire prioritară pentru a evita problemele de inversare a priorităților extinse. Permite
sarcinilor curente cu prioritate mai mare să fie menținute în starea blocată pentru cel mai scurt
timp posibil. Cu toate acestea, moștenirea prioritară nu corectează inversarea priorităților, ci doar
minimizează efectul acesteia.

Synchronization
Sincronizarea este capacitatea de a controla accesul mai multor fire la orice resursă
partajată. Sincronizarea este o opțiune mai bună în cazul în care dorim să permitem accesului
unui singur fir la resursa partajată. Sincronizarea firelor este definită ca un mecanism care
asigură că două sau mai multe fire simultane nu execută simultan un anumit segment de program
cunoscut sub numele de secțiune critică.
Sincronizarea este folosită în principal

1. Pentru a preveni interferența firului.


2. Pentru a preveni problema consistenței.
Tipuri de sincronizare
Există două tipuri de sincronizare
1. Sincronizare proces
2. Sincronizarea firului

Codul sursă:
using System;
using System.Threading;
namespace Lab2
{
class Program
{
private static Thread t1, t2, t3, t4, t5, t6, t7;

static void Main(string[] args)


{
t1 = new Thread(new ThreadStart(Thread1));
t2 = new Thread(new ThreadStart(Thread2));
t3 = new Thread(new ThreadStart(Thread3));
t4 = new Thread(new ThreadStart(Thread4));
t5 = new Thread(new ThreadStart(Thread5));
t6 = new Thread(new ThreadStart(Thread6));
t7 = new Thread(new ThreadStart(Thread7));
t1.Start();
t2.Start();
t3.Start();
t4.Start();
t5.Start();
t6.Start();
t7.Start();

}
static void Thread1()
{
Console.WriteLine("Thread 1");
}
static void Thread2()
{
t1.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 2");
}
static void Thread3()
{
t1.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 3");
}
static void Thread4()
{
t1.Join();
t2.Join();
t3.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 4");
}
static void Thread5()
{
t4.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 5");
}
static void Thread6()
{
t4.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 6");
}
static void Thread7()
{
t4.Join();
Thread.Sleep(1500);
Console.WriteLine("Thread 7");
}

}
}

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

  • Laborator Nr1 PSI
    Laborator Nr1 PSI
    Document9 pagini
    Laborator Nr1 PSI
    Aliona
    Încă nu există evaluări
  • Suport-de-Curs PSI Partea2 V 28 11 2017
    Suport-de-Curs PSI Partea2 V 28 11 2017
    Document198 pagini
    Suport-de-Curs PSI Partea2 V 28 11 2017
    Gheorghe Rotari
    Încă nu există evaluări
  • SI Nadejda Constantinescu Lab 1
    SI Nadejda Constantinescu Lab 1
    Document7 pagini
    SI Nadejda Constantinescu Lab 1
    Nadia
    Încă nu există evaluări
  • IoT Lab1
     IoT Lab1
    Document2 pagini
    IoT Lab1
    Eugenia Batrînac
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document6 pagini
    Lab 2
    Maria Sevciuc
    Încă nu există evaluări
  • Lab#1 PR
    Lab#1 PR
    Document5 pagini
    Lab#1 PR
    Alexandru Dumbrava
    Încă nu există evaluări
  • PSI Lab 2
    PSI Lab 2
    Document13 pagini
    PSI Lab 2
    Nicolae
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document14 pagini
    Lab 1
    Aliona
    Încă nu există evaluări
  • PSI Lab 3
    PSI Lab 3
    Document10 pagini
    PSI Lab 3
    Nicolae
    Încă nu există evaluări
  • TVPP Laborator nr.3
    TVPP Laborator nr.3
    Document5 pagini
    TVPP Laborator nr.3
    Ion Popescu
    0% (1)
  • 5.2 Sabloane de Proiectare
    5.2 Sabloane de Proiectare
    Document15 pagini
    5.2 Sabloane de Proiectare
    roxi1234ro
    Încă nu există evaluări
  • Lab 2 SI
    Lab 2 SI
    Document4 pagini
    Lab 2 SI
    UTM SOE-161
    Încă nu există evaluări
  • Raspunsuri AMSI
    Raspunsuri AMSI
    Document11 pagini
    Raspunsuri AMSI
    Cristina Florea
    Încă nu există evaluări
  • PS TS
    PS TS
    Document16 pagini
    PS TS
    Grosu Elena
    Încă nu există evaluări
  • Lab3 PR
    Lab3 PR
    Document22 pagini
    Lab3 PR
    Constantin
    Încă nu există evaluări
  • Capitolul II Limbajul UML
    Capitolul II Limbajul UML
    Document34 pagini
    Capitolul II Limbajul UML
    torjocf
    Încă nu există evaluări
  • Proiect TMPS 2018
    Proiect TMPS 2018
    Document1 pagină
    Proiect TMPS 2018
    Lorena Alexandru
    Încă nu există evaluări
  • C# - Questions and Aswers
    C# - Questions and Aswers
    Document40 pagini
    C# - Questions and Aswers
    andra.jora.92
    Încă nu există evaluări
  • Lab 4 TMPS BridgePattern
    Lab 4 TMPS BridgePattern
    Document4 pagini
    Lab 4 TMPS BridgePattern
    Guzun Ion
    Încă nu există evaluări
  • Raport 2
    Raport 2
    Document9 pagini
    Raport 2
    sergiu
    Încă nu există evaluări
  • Lab2 TMPS
    Lab2 TMPS
    Document4 pagini
    Lab2 TMPS
    Ion Cornea
    Încă nu există evaluări
  • Pad Examen
    Pad Examen
    Document7 pagini
    Pad Examen
    Varvara Ciorba
    Încă nu există evaluări
  • PSI Lab 1
    PSI Lab 1
    Document9 pagini
    PSI Lab 1
    Nicolae
    Încă nu există evaluări
  • Examen TIDPP
    Examen TIDPP
    Document3 pagini
    Examen TIDPP
    Rosca Doinita
    Încă nu există evaluări
  • Iepuras Daniel LAB 3 TS
    Iepuras Daniel LAB 3 TS
    Document8 pagini
    Iepuras Daniel LAB 3 TS
    DanuIepuras
    Încă nu există evaluări
  • BDC Lab1
    BDC Lab1
    Document11 pagini
    BDC Lab1
    Radu Madiudin
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document4 pagini
    Lab 2
    Fil Gorea
    Încă nu există evaluări
  • Lista Subiecte Examen
    Lista Subiecte Examen
    Document1 pagină
    Lista Subiecte Examen
    Ion Popescu
    Încă nu există evaluări
  • Lab4 PR Adasanu Gicu
    Lab4 PR Adasanu Gicu
    Document9 pagini
    Lab4 PR Adasanu Gicu
    Георгий 98
    Încă nu există evaluări
  • Lucrarea de Laborator 1
    Lucrarea de Laborator 1
    Document14 pagini
    Lucrarea de Laborator 1
    Anonymous B5GmZv5B
    Încă nu există evaluări
  • SOMIPP Lab1
    SOMIPP Lab1
    Document6 pagini
    SOMIPP Lab1
    violina
    Încă nu există evaluări
  • Lab 1 PAD Braga Eugen
    Lab 1 PAD Braga Eugen
    Document7 pagini
    Lab 1 PAD Braga Eugen
    Alexandru Kirika
    Încă nu există evaluări
  • Lucrare de Curs BDC
    Lucrare de Curs BDC
    Document17 pagini
    Lucrare de Curs BDC
    Petru Voloceai
    Încă nu există evaluări
  • Iepuras Daniel Lab 1 TS
    Iepuras Daniel Lab 1 TS
    Document4 pagini
    Iepuras Daniel Lab 1 TS
    DanuIepuras
    Încă nu există evaluări
  • Lab. 1. BDC Utm Fcim
    Lab. 1. BDC Utm Fcim
    Document15 pagini
    Lab. 1. BDC Utm Fcim
    Fernando Epic Costa
    0% (1)
  • PSI Laborator 1RO
    PSI Laborator 1RO
    Document17 pagini
    PSI Laborator 1RO
    Victor Noroc
    Încă nu există evaluări
  • SOMIPP Labs
    SOMIPP Labs
    Document107 pagini
    SOMIPP Labs
    Ionel Boaghe
    Încă nu există evaluări
  • Tema Teza de Licenta
    Tema Teza de Licenta
    Document8 pagini
    Tema Teza de Licenta
    Ion Caimacan
    0% (1)
  • Laborator1 TMPS
    Laborator1 TMPS
    Document4 pagini
    Laborator1 TMPS
    Ion Cornea
    Încă nu există evaluări
  • 1arhitect Lab 2
    1arhitect Lab 2
    Document11 pagini
    1arhitect Lab 2
    UTM
    Încă nu există evaluări
  • LL1 Baze de Date
    LL1 Baze de Date
    Document10 pagini
    LL1 Baze de Date
    Anya Mr
    Încă nu există evaluări
  • Lucrare de Laborator nr.4 Florea Cristina
    Lucrare de Laborator nr.4 Florea Cristina
    Document9 pagini
    Lucrare de Laborator nr.4 Florea Cristina
    Cristina Florea
    Încă nu există evaluări
  • Examen PW
    Examen PW
    Document71 pagini
    Examen PW
    DorinRotaru
    Încă nu există evaluări
  • Lucrare de Diploma (Ciocan Vasile)
    Lucrare de Diploma (Ciocan Vasile)
    Document65 pagini
    Lucrare de Diploma (Ciocan Vasile)
    Ana Beldiga
    Încă nu există evaluări
  • Hadoop Tutorial
    Hadoop Tutorial
    Document21 pagini
    Hadoop Tutorial
    Adriana Bnta
    100% (1)
  • TW Lab 6
    TW Lab 6
    Document6 pagini
    TW Lab 6
    DanuIepuras
    Încă nu există evaluări
  • Programarea in Retea Lab 3 Iepuras Daniel TI-171
    Programarea in Retea Lab 3 Iepuras Daniel TI-171
    Document8 pagini
    Programarea in Retea Lab 3 Iepuras Daniel TI-171
    DanuIepuras
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Rosca Doinita
    Încă nu există evaluări
  • Criptarea Asimetrica
    Criptarea Asimetrica
    Document6 pagini
    Criptarea Asimetrica
    vanikad
    Încă nu există evaluări
  • TMPS Proiect de Semestru
    TMPS Proiect de Semestru
    Document18 pagini
    TMPS Proiect de Semestru
    Guzun Ion
    Încă nu există evaluări
  • SOMIPP Lab5
    SOMIPP Lab5
    Document4 pagini
    SOMIPP Lab5
    X3 KTO
    Încă nu există evaluări
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Document7 pagini
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document7 pagini
    Lab 1
    Augusta Bucataru
    Încă nu există evaluări
  • Lab4 (TS)
    Lab4 (TS)
    Document6 pagini
    Lab4 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Lab2 (TS)
    Lab2 (TS)
    Document7 pagini
    Lab2 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Lab3 AMOO
    Lab3 AMOO
    Document7 pagini
    Lab3 AMOO
    Сергей Борта
    Încă nu există evaluări
  • AI-191 Medinschi Ion SO4
    AI-191 Medinschi Ion SO4
    Document5 pagini
    AI-191 Medinschi Ion SO4
    Carolin
    Încă nu există evaluări
  • AMOO3 Morcotilo Nichita FINAL
    AMOO3 Morcotilo Nichita FINAL
    Document11 pagini
    AMOO3 Morcotilo Nichita FINAL
    Никита Мк.
    Încă nu există evaluări
  • Lab 3 - Threads
    Lab 3 - Threads
    Document67 pagini
    Lab 3 - Threads
    lucian.huluta
    Încă nu există evaluări
  • Fire de Executie
    Fire de Executie
    Document12 pagini
    Fire de Executie
    Madalina Gherman
    Încă nu există evaluări
  • Laborator-2 TS
    Laborator-2 TS
    Document13 pagini
    Laborator-2 TS
    Сергей Борта
    Încă nu există evaluări
  • Laborator-2 TMPS Borta
    Laborator-2 TMPS Borta
    Document11 pagini
    Laborator-2 TMPS Borta
    Сергей Борта
    Încă nu există evaluări
  • Laborator-1 TMPS Borta
    Laborator-1 TMPS Borta
    Document10 pagini
    Laborator-1 TMPS Borta
    Сергей Борта
    Încă nu există evaluări
  • Laborator-4 TMPS Borta
    Laborator-4 TMPS Borta
    Document9 pagini
    Laborator-4 TMPS Borta
    Сергей Борта
    Încă nu există evaluări
  • LAB2 Matlab
    LAB2 Matlab
    Document9 pagini
    LAB2 Matlab
    Сергей Борта
    Încă nu există evaluări
  • TI183 BortaSergiu Lab3
    TI183 BortaSergiu Lab3
    Document5 pagini
    TI183 BortaSergiu Lab3
    Сергей Борта
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document3 pagini
    Lab 1
    Сергей Борта
    Încă nu există evaluări
  • Lab 4 CDE
    Lab 4 CDE
    Document10 pagini
    Lab 4 CDE
    Сергей Борта
    Încă nu există evaluări
  • Marketing - Borta Sergiu
    Marketing - Borta Sergiu
    Document16 pagini
    Marketing - Borta Sergiu
    Сергей Борта
    Încă nu există evaluări
  • Sarcina Pentru Studenţi (Tema Intreprindere) - 2
    Sarcina Pentru Studenţi (Tema Intreprindere) - 2
    Document9 pagini
    Sarcina Pentru Studenţi (Tema Intreprindere) - 2
    Сергей Борта
    Încă nu există evaluări
  • APAlab 4
    APAlab 4
    Document15 pagini
    APAlab 4
    Сергей Борта
    Încă nu există evaluări
  • Lab 3 CDE
    Lab 3 CDE
    Document8 pagini
    Lab 3 CDE
    Сергей Борта
    Încă nu există evaluări
  • Lab 1 CDE
    Lab 1 CDE
    Document5 pagini
    Lab 1 CDE
    Сергей Борта
    Încă nu există evaluări
  • Lab 5 CDE
    Lab 5 CDE
    Document13 pagini
    Lab 5 CDE
    Сергей Борта
    Încă nu există evaluări