Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sincronizaci
on (Ej. introductorios)
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
x = 4;
x = 1;
print(x);
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
B
x = x + 1;
x = x + 1;
print(x);
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Que es un semaforo?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Que es un semaforo?
Es una variable (o tipo abstracto de datos) que permite
controlar el acceso de m
ultiples procesos a un recurso com
un
en un ambiente de programaci
on paralela.
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Que es un semaforo?
Es una variable (o tipo abstracto de datos) que permite
controlar el acceso de m
ultiples procesos a un recurso com
un
en un ambiente de programaci
on paralela.
Es lo mismo que usar un entero y fijarme que valor tiene?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Que es un semaforo?
Es una variable (o tipo abstracto de datos) que permite
controlar el acceso de m
ultiples procesos a un recurso com
un
en un ambiente de programaci
on paralela.
Es lo mismo que usar un entero y fijarme que valor tiene?
No, es escencial que las primitivas sobre semaforos sean
atomicas.
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Exclusion mutua
Sin desalojo
Espera circular
Las cuatro deben estar presente para que haya deadlock. Son
condiciones necesarias.
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Race condition
Sem
aforos
Deadlock
Exclusion mutua
Sin desalojo
Espera circular
Las cuatro deben estar presente para que haya deadlock. Son
condiciones necesarias.
Estas condiciones se pueden modelar como grafos con dos
tipos de nodos: procesos y recursos. Hay deadlock si se
encuentra un ciclo en el grafo.
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Se tienen 3 procesos A, B y C. Construya el c
odigo con semaforos de
manera tal que la secuencia sea ABC,ABC,ABC,. . .
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Se tienen 3 procesos A, B y C. Construya el c
odigo con semaforos de
manera tal que la secuencia sea ABC,ABC,ABC,. . .
Soluci
on:
Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacian
son:
sem A = 1, sem B = 0, sem C = 0
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Se tienen 3 procesos A, B y C. Construya el c
odigo con semaforos de
manera tal que la secuencia sea ABC,ABC,ABC,. . .
Soluci
on:
Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacian
son:
sem A = 1, sem B = 0, sem C = 0
P(sem A)
// Algo
V(sem B)
P(sem B)
// Algo
V(sem C)
P(sem C)
// Algo
V(sem A)
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si quiero que la secuencia sea BCA,BCA,BCA,. . .?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si quiero que la secuencia sea BCA,BCA,BCA,. . .?
Soluci
on:
Cambio los valores de inicializaci
on de los semaforos por
sem A = 0, sem B = 1, sem C = 0
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si quiero que la secuencia sea BBCA,BBCA,BBCA,. . .?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si quiero que la secuencia sea BBCA,BBCA,BBCA,. . .?
Soluci
on:
Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacion
son:
sem A = 0, sem B = 2, sem C = 0
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si quiero que la secuencia sea BBCA,BBCA,BBCA,. . .?
Soluci
on:
Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacion
son:
sem A = 0, sem B = 2, sem C = 0
P(sem A)
// Algo
V(sem B)
V(sem B)
P(sem B)
// Algo
V(sem C)
P(sem C)
P(sem C)
// Algo
V(sem A)
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Deadlock
P2
sem2.wait();
sem1.wait();
// Secci
on cr
tica
sem1.signal();
sem2.signal();
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
En un sistema conviven 3 procesos y 2 recursos. Uno de los
recursos (R2) es de uso exclusivo y el otro (R1) puede ser
compartido por hasta dos procesos. Puede haber deadlock?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
En un sistema conviven 3 procesos y 2 recursos. Uno de los
recursos (R2) es de uso exclusivo y el otro (R1) puede ser
compartido por hasta dos procesos. Puede haber deadlock?
Soluci
on:
S.
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si ahora R1 puede ser compartido por hasta tres procesos?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si ahora R1 puede ser compartido por hasta tres procesos?
Soluci
on:
No.
Ejercicio
Cual o cuales de las condiciones de Coffman no se cumple?
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si ahora R1 puede ser compartido por hasta tres procesos?
Soluci
on:
No.
Ejercicio
Cual o cuales de las condiciones de Coffman no se cumple?
Sin desalojo
Espera circular
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
Y si ahora R1 puede ser compartido por hasta tres procesos?
Soluci
on:
No.
Ejercicio
Cual o cuales de las condiciones de Coffman no se cumple?
Sin desalojo
Espera circular
Damian Bursztyn
Soluci
on:
No hay exclusion mutua,
porque a los efectos del
problema R1 puede ser usado
por todos los procesos al
mismo tiempo.
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Ejercicio
En un sistema hay tres procesos (P1, P2 y P3) y tres recursos (R1,
R2, R3). Los tres recursos son de uso exclusivo. Se sabe que P1
requiere los tres recursos, P2 requiere de R1 y R2 y P3 solo require
R3.
1
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)
Repaso
Sincronizaci
on (Ej. introductorios)
Deadlock
Damian Bursztyn
Sincronizaci
on entre procesos (aka: sem
aforos)