Sincronización entre procesos (aka:...

42
Repaso Sincronizaci´on (Ej. introductorios) Deadlock Sincronizaci´ on entre procesos (aka: sem´ aforos) Damian Bursztyn DC - FCEyN - UBA Sistemas Operativos, 1c-2012 Damian Bursztyn Sincronizaci´on entre procesos (aka: sem´ aforos)

Transcript of Sincronización entre procesos (aka:...

Page 1: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Sincronizacion entre procesos(aka: semaforos)

Damian Bursztyn

DC - FCEyN - UBA

Sistemas Operativos, 1c-2012

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 2: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Primero repasemos un poco lo que vieron en la teorica.

Que es una race condition?Defecto en un proceso, donde el resultado del mismo dependeinesperadamente o crıticamente del orden en que se ejecutenciertos eventos.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 3: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Primero repasemos un poco lo que vieron en la teorica.

Que es una race condition?

Defecto en un proceso, donde el resultado del mismo dependeinesperadamente o crıticamente del orden en que se ejecutenciertos eventos.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 4: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Primero repasemos un poco lo que vieron en la teorica.

Que es una race condition?Defecto en un proceso, donde el resultado del mismo dependeinesperadamente o crıticamente del orden en que se ejecutenciertos eventos.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 5: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Cual es el output de los siguientes procesos A y B corriendosimultaneamente y con memoria compartida?

A

x = 1;

print(x);

B

x = 4;

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 6: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Cual es el output de los siguientes procesos A y B corriendosimultaneamente y con memoria compartida?

A

x = 1;

print(x);

B

x = 4;

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 7: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Cual es el output de los siguientes procesos A y B corriendosimultaneamente y con memoria compartida?x comienza inicializado en 0.

A

x = x + 1;

print(x);

B

x = x + 1;

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 8: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Cual es el output de los siguientes procesos A y B corriendosimultaneamente y con memoria compartida?x comienza inicializado en 0.

A

x = x + 1;

print(x);

B

x = x + 1;

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 9: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Que es un semaforo?

Es una variable (o tipo abstracto de datos) que permitecontrolar el acceso de multiples procesos a un recurso comunen un ambiente de programacion paralela.

Es lo mismo que usar un entero y fijarme que valor tiene?No, es escencial que las primitivas sobre semaforos seanatomicas.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 10: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Que es un semaforo?Es una variable (o tipo abstracto de datos) que permitecontrolar el acceso de multiples procesos a un recurso comunen un ambiente de programacion paralela.

Es lo mismo que usar un entero y fijarme que valor tiene?No, es escencial que las primitivas sobre semaforos seanatomicas.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 11: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Que es un semaforo?Es una variable (o tipo abstracto de datos) que permitecontrolar el acceso de multiples procesos a un recurso comunen un ambiente de programacion paralela.

Es lo mismo que usar un entero y fijarme que valor tiene?

No, es escencial que las primitivas sobre semaforos seanatomicas.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 12: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Que es un semaforo?Es una variable (o tipo abstracto de datos) que permitecontrolar el acceso de multiples procesos a un recurso comunen un ambiente de programacion paralela.

Es lo mismo que usar un entero y fijarme que valor tiene?No, es escencial que las primitivas sobre semaforos seanatomicas.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 13: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Recordemos cuales son las primitivas:

Primitivas

sem_create(int value): Devuelve un nuevo semaforoinicializado en value. (Otras formas: Semaphore(value),new Semaphore(value), etc.)

sem_wait(semaphore sem): Mientras el valor sea menor oigual a 0 se bloquea esperando un signal. Luego decrementael valor de sem. (Otras formas: wait(sem), P(sem),sem.wait(), etc.)

sem_signal(semaphore sem, [int n = 1]): Incrementaen uno el valor del semaforo sem y despierta a alguno1 de losprocesos que estan esperando en ese semaforo. (Otras formas:signal(sem, [n]), V(sem), sem.signal([n]), etc.)

1En general las bibliotecas de semaforos no garantizan en que orden sedespertara a los procesos que estan esperando en un semaforo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 14: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Recordemos cuales son las primitivas:

Primitivas

sem_create(int value): Devuelve un nuevo semaforoinicializado en value. (Otras formas: Semaphore(value),new Semaphore(value), etc.)

sem_wait(semaphore sem): Mientras el valor sea menor oigual a 0 se bloquea esperando un signal. Luego decrementael valor de sem. (Otras formas: wait(sem), P(sem),sem.wait(), etc.)

sem_signal(semaphore sem, [int n = 1]): Incrementaen uno el valor del semaforo sem y despierta a alguno1 de losprocesos que estan esperando en ese semaforo. (Otras formas:signal(sem, [n]), V(sem), sem.signal([n]), etc.)

1En general las bibliotecas de semaforos no garantizan en que orden sedespertara a los procesos que estan esperando en un semaforo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 15: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Recordemos cuales son las primitivas:

Primitivas

sem_create(int value): Devuelve un nuevo semaforoinicializado en value. (Otras formas: Semaphore(value),new Semaphore(value), etc.)

sem_wait(semaphore sem): Mientras el valor sea menor oigual a 0 se bloquea esperando un signal. Luego decrementael valor de sem. (Otras formas: wait(sem), P(sem),sem.wait(), etc.)

sem_signal(semaphore sem, [int n = 1]): Incrementaen uno el valor del semaforo sem y despierta a alguno1 de losprocesos que estan esperando en ese semaforo. (Otras formas:signal(sem, [n]), V(sem), sem.signal([n]), etc.)

1En general las bibliotecas de semaforos no garantizan en que orden sedespertara a los procesos que estan esperando en un semaforo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 16: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Recordemos cuales son las primitivas:

Primitivas

sem_create(int value): Devuelve un nuevo semaforoinicializado en value. (Otras formas: Semaphore(value),new Semaphore(value), etc.)

sem_wait(semaphore sem): Mientras el valor sea menor oigual a 0 se bloquea esperando un signal. Luego decrementael valor de sem. (Otras formas: wait(sem), P(sem),sem.wait(), etc.)

sem_signal(semaphore sem, [int n = 1]): Incrementaen uno el valor del semaforo sem y despierta a alguno1 de losprocesos que estan esperando en ese semaforo. (Otras formas:signal(sem, [n]), V(sem), sem.signal([n]), etc.)

1En general las bibliotecas de semaforos no garantizan en que orden sedespertara a los procesos que estan esperando en un semaforo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 17: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Cuando esta en deadlock un conjunto de procesos?

un conjunto de procesos esta en deadlock si cada proceso delconjunto esta esperando por un evento que solo otro de losprocesos del conjunto puede causar.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 18: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Cuando esta en deadlock un conjunto de procesos?un conjunto de procesos esta en deadlock si cada proceso delconjunto esta esperando por un evento que solo otro de losprocesos del conjunto puede causar.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 19: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Condiciones (Coffman y cıa, 1971)

Exclusion mutua: Cada recurso esta asignado a un proceso oesta disponible.

Hold and wait: Los procesos que ya tienen algun recursopueden solicitar otro.

No preemption: No hay mecanismo compulsivo para quitarlelos recursos a un proceso que ya los tiene. El proceso debeliberarlos explıcitamente.

Espera circular: Tiene que haber una cadena de dos o masprocesos, cada uno de los cuales esta esperando algun recursoque tiene el miembro siguiente.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 20: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Condiciones (Coffman y cıa, 1971)

Exclusion mutua: Cada recurso esta asignado a un proceso oesta disponible.

Hold and wait: Los procesos que ya tienen algun recursopueden solicitar otro.

No preemption: No hay mecanismo compulsivo para quitarlelos recursos a un proceso que ya los tiene. El proceso debeliberarlos explıcitamente.

Espera circular: Tiene que haber una cadena de dos o masprocesos, cada uno de los cuales esta esperando algun recursoque tiene el miembro siguiente.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 21: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Condiciones (Coffman y cıa, 1971)

Exclusion mutua: Cada recurso esta asignado a un proceso oesta disponible.

Hold and wait: Los procesos que ya tienen algun recursopueden solicitar otro.

No preemption: No hay mecanismo compulsivo para quitarlelos recursos a un proceso que ya los tiene. El proceso debeliberarlos explıcitamente.

Espera circular: Tiene que haber una cadena de dos o masprocesos, cada uno de los cuales esta esperando algun recursoque tiene el miembro siguiente.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 22: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Condiciones (Coffman y cıa, 1971)

Exclusion mutua: Cada recurso esta asignado a un proceso oesta disponible.

Hold and wait: Los procesos que ya tienen algun recursopueden solicitar otro.

No preemption: No hay mecanismo compulsivo para quitarlelos recursos a un proceso que ya los tiene. El proceso debeliberarlos explıcitamente.

Espera circular: Tiene que haber una cadena de dos o masprocesos, cada uno de los cuales esta esperando algun recursoque tiene el miembro siguiente.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 23: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Condiciones (Coffman y cıa, 1971)

1 Exclusion mutua

2 Hold & Wait

3 Sin desalojo

4 Espera circular

Las cuatro deben estar presente para que haya deadlock. Soncondiciones necesarias.

Estas condiciones se pueden modelar como grafos con dostipos de nodos: procesos y recursos. Hay deadlock si seencuentra un ciclo en el grafo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 24: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Race conditionSemaforosDeadlock

Condiciones (Coffman y cıa, 1971)

1 Exclusion mutua

2 Hold & Wait

3 Sin desalojo

4 Espera circular

Las cuatro deben estar presente para que haya deadlock. Soncondiciones necesarias.

Estas condiciones se pueden modelar como grafos con dostipos de nodos: procesos y recursos. Hay deadlock si seencuentra un ciclo en el grafo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 25: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

Se tienen 3 procesos A, B y C. Construya el codigo con semaforos demanera tal que la secuencia sea ABC,ABC,ABC,. . .

Solucion:Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacianson:sem A = 1, sem B = 0, sem C = 0

P(sem A) P(sem B) P(sem C)// Algo // Algo // AlgoV(sem B) V(sem C) V(sem A)

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 26: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

Se tienen 3 procesos A, B y C. Construya el codigo con semaforos demanera tal que la secuencia sea ABC,ABC,ABC,. . .

Solucion:Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacianson:sem A = 1, sem B = 0, sem C = 0

P(sem A) P(sem B) P(sem C)// Algo // Algo // AlgoV(sem B) V(sem C) V(sem A)

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 27: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

Se tienen 3 procesos A, B y C. Construya el codigo con semaforos demanera tal que la secuencia sea ABC,ABC,ABC,. . .

Solucion:Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacianson:sem A = 1, sem B = 0, sem C = 0

P(sem A) P(sem B) P(sem C)// Algo // Algo // AlgoV(sem B) V(sem C) V(sem A)

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 28: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si quiero que la secuencia sea BCA,BCA,BCA,. . .?

Solucion:Cambio los valores de inicializacion de los semaforos porsem A = 0, sem B = 1, sem C = 0

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 29: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si quiero que la secuencia sea BCA,BCA,BCA,. . .?

Solucion:Cambio los valores de inicializacion de los semaforos porsem A = 0, sem B = 1, sem C = 0

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 30: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si quiero que la secuencia sea BBCA,BBCA,BBCA,. . .?

Solucion:Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacionson:sem A = 0, sem B = 2, sem C = 0

P(sem A) P(sem B) P(sem C)// Algo // Algo P(sem C)V(sem B) V(sem C) // AlgoV(sem B) V(sem A)

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 31: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si quiero que la secuencia sea BBCA,BBCA,BBCA,. . .?

Solucion:Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacionson:sem A = 0, sem B = 2, sem C = 0

P(sem A) P(sem B) P(sem C)// Algo // Algo P(sem C)V(sem B) V(sem C) // AlgoV(sem B) V(sem A)

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 32: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si quiero que la secuencia sea BBCA,BBCA,BBCA,. . .?

Solucion:Uso 3 semaforos, sem A, sem B y sem C. Sus valores de inicializacionson:sem A = 0, sem B = 2, sem C = 0

P(sem A) P(sem B) P(sem C)// Algo // Algo P(sem C)V(sem B) V(sem C) // AlgoV(sem B) V(sem A)

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 33: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Deadlock

So it begins, the great battle of our time.

Un ejemplo tıpico de deadlock es

P1

sem1.wait();

sem2.wait();

// Seccion crıtica

sem2.signal();

sem1.signal();

P2

sem2.wait();

sem1.wait();

// Seccion crıtica

sem1.signal();

sem2.signal();

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 34: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

En un sistema conviven 3 procesos y 2 recursos. Uno de losrecursos (R2) es de uso exclusivo y el otro (R1) puede sercompartido por hasta dos procesos. ¿Puede haber deadlock?

Solucion:Sı.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 35: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

En un sistema conviven 3 procesos y 2 recursos. Uno de losrecursos (R2) es de uso exclusivo y el otro (R1) puede sercompartido por hasta dos procesos. ¿Puede haber deadlock?

Solucion:Sı.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 36: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si ahora R1 puede ser compartido por hasta tres procesos?

Solucion:No.

Ejercicio

¿Cual o cuales de las condiciones de Coffman no se cumple?

Recordemos las condiciones deCoffman

1 Exclusion mutua

2 Hold & Wait

3 Sin desalojo

4 Espera circular

Solucion:No hay exclusion mutua,porque a los efectos delproblema R1 puede ser usadopor todos los procesos almismo tiempo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 37: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si ahora R1 puede ser compartido por hasta tres procesos?

Solucion:No.

Ejercicio

¿Cual o cuales de las condiciones de Coffman no se cumple?

Recordemos las condiciones deCoffman

1 Exclusion mutua

2 Hold & Wait

3 Sin desalojo

4 Espera circular

Solucion:No hay exclusion mutua,porque a los efectos delproblema R1 puede ser usadopor todos los procesos almismo tiempo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 38: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si ahora R1 puede ser compartido por hasta tres procesos?

Solucion:No.

Ejercicio

¿Cual o cuales de las condiciones de Coffman no se cumple?

Recordemos las condiciones deCoffman

1 Exclusion mutua

2 Hold & Wait

3 Sin desalojo

4 Espera circular

Solucion:No hay exclusion mutua,porque a los efectos delproblema R1 puede ser usadopor todos los procesos almismo tiempo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 39: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

Ejercicio

¿Y si ahora R1 puede ser compartido por hasta tres procesos?

Solucion:No.

Ejercicio

¿Cual o cuales de las condiciones de Coffman no se cumple?

Recordemos las condiciones deCoffman

1 Exclusion mutua

2 Hold & Wait

3 Sin desalojo

4 Espera circular

Solucion:No hay exclusion mutua,porque a los efectos delproblema R1 puede ser usadopor todos los procesos almismo tiempo.

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 40: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (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 P1requiere los tres recursos, P2 requiere de R1 y R2 y P3 solo requireR3.

1 ¿El sistema esta libre de deadlock?

2 ¿P3 influye en que el sistema esta o no libre de deadlock?

3 Si me aseguro que P2 no podra pedir ningun recurso hastaque P1 haya liberado todos sus recursos ¿El sistema esta librede deadlock? ¿Por que?

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 41: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

El proximo Martes: Mas ejercicios de sincronizacion difıciles

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)

Page 42: Sincronización entre procesos (aka: semáforos)users.df.uba.ar/kant/dc/so/clas-prac/sincro-1.pdf · un conjunto de procesos est a en deadlock si cada proceso del conjunto est a esperando

RepasoSincronizacion (Ej. introductorios)

Deadlock

El proximo Martes: Mas ejercicios de sincronizacion difıciles

Damian Bursztyn Sincronizacion entre procesos (aka: semaforos)