Diferencia entre revisiones de «Práctica Programación Concurrente (Sistemas Operativos)»
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