Práctica Programación Concurrente (Sistemas Operativos)
Ejercicio 01:
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