Diferencia entre revisiones de «Práctica Programación Concurrente (Sistemas Operativos)»

De Cuba-Wiki
Sin resumen de edición
Sin resumen de edición
Línea 1: Línea 1:
== Ejercicio 01: ==  
== Ejercicio 01: ==  
S1 a = b+c              R(S1) = {b,c}  W(S1) = {a}
S2 d = b+e              R(S2) = {b,e}  W(S2) = {d}
S3 f = c+e              R(S3) = {c,e}  W(S3) = {f}
S4 g = fun1(a,d,f)      R(S4) = {a,d,f}  W(S4) = {g}
S5 f = sen(w)          R(S5) = {w}    W(S5 = {f}
Condiciones de Bernstein: R(Si) ∩ W(Sj) = W(Si) ∩ R(Sj) = W(Si) ∩ W(Sj) = {}
Se pueden ejecutar concurrentemente S1 y S2, S1 y S3, S1 y S5, S2 y S3, S2 y S5


== Ejercicio 02:(*) ==  
== Ejercicio 02:(*) ==  

Revisión del 02:29 31 oct 2006

Ejercicio 01:

S1 a = b+c R(S1) = {b,c} W(S1) = {a}

S2 d = b+e R(S2) = {b,e} W(S2) = {d}

S3 f = c+e R(S3) = {c,e} W(S3) = {f}

S4 g = fun1(a,d,f) R(S4) = {a,d,f} W(S4) = {g}

S5 f = sen(w) R(S5) = {w} W(S5 = {f}

Condiciones de Bernstein: R(Si) ∩ W(Sj) = W(Si) ∩ R(Sj) = W(Si) ∩ W(Sj) = {}

Se pueden ejecutar concurrentemente S1 y S2, S1 y S3, S1 y S5, S2 y S3, S2 y S5

Ejercicio 02:(*)

a. count2 = 2

count = 3

s1

fork L2

fork L3

fork L4

jump Sigo

L2:

s2

jump Sigo2

L3:

s3

Sigo2:

join count2

jump Sigo

L4:

s4

Sigo:

join count


b.

s1

parbegin

begin

parbegin

s2

s3

parend

s5

end

s4

parend

s6


Ejercicio 03:(*)

Que es indivisible?


Ejercicio 04:(*)

a. Me parece que es el tipo de grafos que no pueden ser representados con parbegin/parend. PREGUNTAR


Ejercicio 05:

Ejercicio 06:

Ejercicio 07:

Ejercicio 08:

Ejercicio 09:

Ejercicio 10:

Ejercicio 11:

Ejercicio 12:(*)

Porque como cambian el valor del semaforo y despues lo evalua, al haber concurrencia se pueden quedar en WAIT dos ejecuciones de P. Ver Set-And-Test


Ejercicio 13:

Ejercicio 14:(*)

Monitor ej14

var:

bandera : condicion


procedure P(x)

begin

x = x-1

if (x<0) then

Wait(bandera)

endif

end


procedure V(x)

begin

x = x+1

if (x<=0) then

Signal(Bandera)

endif

end


Ejercicio 15:(*)

a.

E = 1; S = 0


procedure Productor

begin

P(E)

....

V(S)

end


procedure Consumidor

begin

P(S)

....

V(E)

end


b.

Esta el mismo ejercicio en la pagina 19 del capitulo 19.


Ejercicio 16:(*)

X = 1

procedure Leer

begin

//leo el archivo

end


procedure Escribir

begin

P(X)

//escribo el archivo

V(X)

end


begin Prog-Principal(operacion)

if (operacion == "Leer) then

Leer

else

Escribir

endif

end


Ejercicio 17:

Ejercicio 18:

Ejercicio 19:(*)

Muy largo como para leerlo


Ejercicio 20:

Ejercicio 21:(*)

Ni idea que quieren


Ejercicio 22:(*)

Estoy harto de esos ejercicios que te meten enunciados al pedo!!


Ejercicio 23:(*)

Roberto hablo de unas reglas en clase... pero no las encuentro