Sunteți pe pagina 1din 1

Numarul 1

1. Se considera urmatorul program concurent:


integer n  0
boolean flag  false
p q
p1: while flag = false q1: while n = 0
p2: n1–n // Do nothing
q2: flag  true
a. Construiti un scenariu pentru care programul se termina.
b. Ce valori poate avea n pentru situatiile in care acest program se termina.
c. Este adevarat ca programul se termina pentru toate scenariile?
d. Este adevarat ca programul se termina pentru toate scenariile echitabile?

2.
a. Sa se defineasca consistenta pasiva si consistenta secventiala a unei executii
concurente. Sa se dea exemplu de o executie care este consistenta secvential, dar nu
este consistenta pasiv.
b. Se considera urmatoarele doua executii ale unui program concurent ce contine firele A,
B, C si registrul r. Care dintre ele sunt consistente pasiv, consistente secvential,
respectiv liniarizabile?
A:-+-write(2)-+--+-read(1)-+------------------
B:------+-write(1)-+-----------+-read(2)-+---- (1)

si
A:----------+-read(1)---+--------------------
B:------+-write(1)--------+---+-read(1)-+---- (2)
C:------------+-write(2)-+-------------------
c. Sa se implementeze verificarea apartenentei unui element la o multime reprezentata
printr-o lista inlantuita ce foloseste sincronizarea grosiera.
d. Profesorul Jones masoara timpul de executie al programului sau multi-fir
(determinist), care foloseste o planificare “greedy” a procesoarelor, si obtine 𝑇4 = 80
secunde si 𝑇64 = 10 secunde. Care este cel mai mic timp de executie pe care-l poate
profesorul obtine pe 10 procesoare? Se folosesc inegalitatile: 𝑇𝑃 ≥ 𝑇1 /𝑃, 𝑇𝑃 ≥ 𝑇∞ si
𝑇 −𝑇
𝑇𝑃 ≤ 1 𝑃 ∞ + 𝑇∞ .

3. Sa se implementeze problema producator-consumator cu zona tampon finita folosind


zavoarele explicite disponibile in platforma Java. Se cere:
a. Sa se defineasca o multime de clase pentru reprezentarea tamponului, a producatorilor
si a consumatorilor. Se presupune ca fiecare producator produce numere in gama
[min1,max1] (unde min1 < max1 sunt numere naturale date) ce produc acelasi rest r1 la
impartirea prin numarul natural q1 dat. Similar, fiecare consumator consuma numere
in gama [min2, max2] (unde min2 < max2 sunt numere naturale date) ce produc acelasi
rest r2 la impartirea prin numarul natural q2 dat.
b. Sa se realizeze un program de test Java folosind JUnit care creaza o multime de m =
2016 de producatori si n = 444 de consumatori astfel incat acestia produc si consuma
toate numerele naturale din gama [10,100000]. Fiecare producator va produce doar
numere care dau acelasi rest la impartirea prin m, respectiv fiecare consumator va
consuma doar numere care dau acelasi rest la impartirea prin n.
4. Sa se demonstreze distributivitatea operatorului intotdeauna ⃞ fata de  si distributivitatea
operatorului eventual ⃞ fata de .

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