Вы находитесь на странице: 1из 15

Interbloqueo de procesos del SO

Sistemas Operativos ST-324


Facultad de Ingeniera Industrial y de Sistemas - UNI -2012
Carlos Janjachi carlos.janjachi@gmail.com

FIIS - UNI - Carlos Janjachi

Interbloqueo
PROCESOS CON INTERBLOQUEO.
Interbloqueo es el bloqueo permanente de un conjunto de procesos (o hilos de ejecucin) que compiten por los recursos del sistema o en la comunicacin con otros procesos. Tambin llamado deadlock. Tipos de recursos: Reutilizables. Consumibles.

FIIS - UNI - Carlos Janjachi

Interbloqueo
PROCESOS CON INTERBLOQUEO. Cul proceso (A,B,C,D) podra producir interbloqueo?

FIIS - UNI - Carlos Janjachi

Interbloqueo
RECURSOS REUTILIZABLES.
Es utilizado por un proceso y no se agota. Algunos ejemplos son el procesadores, canales de ES, memoria principal y secundaria, dispositivos y estructuras de datos (archivos, bases de datos, semforos).

Caso. Suponga que se tiene un sistema con un procesador al cual llegan dos procesos concurrentes, el sistema solo tiene 200 KB de memoria: P1 P2 t0 : Solicita 80kb t0: Solicita 70kb t1: Solicita 60kb t1: Solicita 70kb
Qu sucede?

FIIS - UNI - Carlos Janjachi

Interbloqueo
RECURSOS CONSUMIBLES.
Este tipo de recurso puede ser creado (producido) y destruido (consumido). Ejemplo: Interrupciones, seales, mensajes, informacin en buffer de E/S.

Caso: Considere dos procesos P1 y P2. P1 Recibir (P2,M) Enviar (P2,N) P2 Recibir (P1, Q) Enviar (P1,R)

Qu podra causar el bloqueo?

FIIS - UNI - Carlos Janjachi

Interbloqueo
CONDICIONES DE INTERBLOQUEO.
Debe darse las condiciones: Exclusin mutua. Solo un proceso puede utilizar un recurso simultneamente. Retencin y esperar. Un proceso retiene un recurso mientras espera por otro. No apropiacin. No se fuerza a que el proceso abandone el recurso. Circulo vicioso de espera. Cuando un proceso retiene un recurso necesario de otros procesos.

FIIS - UNI - Carlos Janjachi

Interbloqueo
CONDICIONES DE INTERBLOQUEO.
Debe darse las condiciones: Exclusin mutua. Ejemplo: un archivo varios pueden read pero solo uno write. Retencin y esperar. Proceso 1 read write archivo A espera read write archivo B espera read No apropiacin. Proceso 1 write archivo A espera Circulo vicioso de espera. Proceso 1 -> Proceso 2 -> Proceso 3
FIIS - UNI - Carlos Janjachi
7

Interbloqueo
PREVENCION DE INTERBLOQUEO.
Para las condiciones: Exclusin mutua. No se puede excluir. Retencin y esperar. Un proceso inicia cuando tiene recursos necesarios. No apropiacin. Si el proceso solicita recurso y se le niega, debe liberar recursos asignados y solicitarlos nuevamente. Circulo vicioso de espera. Si a un proceso se asigna un recurso, solo entonces podrn realizar peticiones los procesos posteriores a este.

FIIS - UNI - Carlos Janjachi

Interbloqueo
ESTRATEGIA DE PREVENCION DE INTERBLOQUEO.
Agrupar los recursos en numero de clases diferentes. Usar estrategia de ordenacin lineal para prevenir crculos viciosos e impedir el interbloqueo entre clases de recursos. Aplicar un algoritmo eficiente para cada clase de recurso. Espacio intercambiable. bloque de memoria en almacenamiento secundario para intercambio entre procesos. Recursos de procesos: Dispositivos asignables: cintas, disco. Memoria principal: Asignable a procesos por pagina o segmento. Recursos internos: Canales de E/S.

FIIS - UNI - Carlos Janjachi

Interbloqueo
CASO PRACTICO: DEADLOCK en SQL Server 2005 La transaccin A tiene un bloqueo compartido de la fila 1. La transaccin B tiene un bloqueo compartido de la fila 2. La transaccin A solicita un bloqueo exclusivo de la fila 2 y se bloquea hasta que la transaccin B finalice y libere el bloqueo compartido que tiene de la fila 2. La transaccin B ahora solicita un bloqueo exclusivo de la fila 1 y se bloquea hasta que la transaccin A finalice y libere el bloqueo compartido que tiene de la fila 1

Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx

FIIS - UNI - Carlos Janjachi

10

Interbloqueo
La transaccin A no puede completarse hasta que se complete la transaccin B, pero la transaccin B est bloqueada por la transaccin A. Esta condicin tambin se llama dependencia cclica: la transaccin A tiene una dependencia de la transaccin B y la transaccin B cierra el crculo teniendo una dependencia de la transaccin A. Ambas transacciones con un interbloqueo esperarn para siempre, a no ser que un proceso externo rompa el interbloqueo. La supervisin de interbloqueos del SQL Server Database Engine (Motor de base de datos de SQL Server) de Microsoft comprueba peridicamente si hay tareas con un interbloqueo. Si el monitor detecta una dependencia cclica, selecciona una de las tareas como el sujeto y finaliza su transaccin con un error.

Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx

FIIS - UNI - Carlos Janjachi

11

Interbloqueo
Minimizando los Interbloqueos. A pesar de que los interbloqueos no se pueden evitar totalmente, si se siguen ciertas convenciones de codificacin se puede reducir su generacin. La minimizacin de los interbloqueos puede aumentar el rendimiento de las transacciones y reducir la sobrecarga del sistema, debido a que: Se revierten menos transacciones, al deshacer todo el trabajo que realiza la transaccin. Las aplicaciones vuelven a enviar menos transacciones debido a que se revirtieron cuando se produjo el interbloqueo.

Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx

FIIS - UNI - Carlos Janjachi

12

Interbloqueo
Para ayudar a reducir los interbloqueos: Obtenga acceso a los objetos en el mismo orden. Evite la interaccin con los usuarios en las transacciones. Mantenga transacciones cortas y en un proceso por lotes. Utilice un nivel de aislamiento basado en las versiones de las filas. Establezca la opcin de base de datos READ_COMMITTED_SNAPSHOT en ON para que las transacciones de lectura confirmada utilicen las versiones de filas. Utilice el aislamiento de instantnea. Utilice conexiones enlazadas.

Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx

FIIS - UNI - Carlos Janjachi

13

Interbloqueo

Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx

FIIS - UNI - Carlos Janjachi

14

Gracias

15

Вам также может понравиться