SO_sesion_5
-
Upload
luisramonzuniga -
Category
Documents
-
view
216 -
download
0
Transcript of SO_sesion_5
-
7/31/2019 SO_sesion_5
1/15
Interbloqueo deprocesos del SO
Sistemas OperativosST-324
Facultad de Ingeniera Industrial y deSistemas - UNI -2012
Carlos Janjachi
FIIS - UNI - Carlos Janjachi1
-
7/31/2019 SO_sesion_5
2/15
Interbloqueo
PROCESOS CON INTERBLOQUEO.
Interbloqueo es el bloqueo permanente de un conjunto de procesos (o hilosde ejecucin) que compiten por los recursos del sistema o en la comunicacincon otros procesos.
Tambin llamado deadlock.
Tipos de recursos: Reutilizables.
Consumibles.
FIIS - UNI - Carlos Janjachi2
-
7/31/2019 SO_sesion_5
3/15
Interbloqueo
PROCESOS CON INTERBLOQUEO.
Cul proceso (A,B,C,D) podra producir interbloqueo?
FIIS - UNI - Carlos Janjachi3
-
7/31/2019 SO_sesion_5
4/15
Interbloqueo
RECURSOS REUTILIZABLES.
Es utilizado por un proceso y no se agota.
Algunos ejemplos son el procesadores, canales de ES, memoria principal ysecundaria, dispositivos y estructuras de datos (archivos, bases de datos,semforos).
Caso. Suponga que se tiene un sistema con un procesador al cual llegan dosprocesos 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 Janjachi4
-
7/31/2019 SO_sesion_5
5/15
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 P2
Recibir (P2,M) Recibir (P1, Q)
Enviar (P2,N) Enviar (P1,R)
Qu podra causar el bloqueo?
FIIS - UNI - Carlos Janjachi5
-
7/31/2019 SO_sesion_5
6/15
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 Janjachi6
-
7/31/2019 SO_sesion_5
7/15
Interbloqueo
CONDICIONES DE INTERBLOQUEO.
Debe darse las condiciones:
Exclusin mutua.
Ejemplo: un archivo varios pueden read pero solo uno write.
Retencin y esperar.
Proceso 1read
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 Janjachi7
-
7/31/2019 SO_sesion_5
8/15
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 recursosasignados y solicitarlos nuevamente.
Circulo vicioso de espera.
Si a un proceso se asigna un recurso, solo entonces podrn realizarpeticiones los procesos posteriores a este.
FIIS - UNI - Carlos Janjachi8
-
7/31/2019 SO_sesion_5
9/15
Interbloqueo
ESTRATEGIA DE PREVENCION DE INTERBLOQUEO.
Agrupar los recursos en numero de clases diferentes.
Usar estrategia de ordenacin lineal para prevenir crculos viciosos e impedirel interbloqueo entre clases de recursos.
Aplicar un algoritmo eficiente para cada clase de recurso.
Espacio intercambiable. bloque de memoria en almacenamiento secundario paraintercambio 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 Janjachi9
-
7/31/2019 SO_sesion_5
10/15
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 bloqueahasta que la transaccin B finalice y libere el bloqueo compartido quetiene de la fila 2.
La transaccin B ahora solicita un bloqueo exclusivo de la fila 1 y sebloquea hasta que la transaccin A finalice y libere el bloqueocompartido que tiene de la fila 1
Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx
FIIS - UNI - Carlos Janjachi10
-
7/31/2019 SO_sesion_5
11/15
Interbloqueo
La transaccin A no puede completarse hasta que se complete la transaccinB, pero la transaccin B est bloqueada por la transaccin A. Esta condicintambin se llama dependencia cclica: la transaccin A tiene una dependenciade la transaccin B y la transaccin B cierra el crculo teniendo unadependencia de la transaccin A.
Ambas transacciones con un interbloqueo esperarn para siempre, a no serque un proceso externo rompa el interbloqueo. La supervisin deinterbloqueos del SQL Server Database Engine (Motor de base de datos deSQL Server) de Microsoft comprueba peridicamente si hay tareas con uninterbloqueo. Si el monitor detecta una dependencia cclica, selecciona una delas 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 Janjachi11
-
7/31/2019 SO_sesion_5
12/15
Interbloqueo
Minimizando los Interbloqueos.
A pesar de que los interbloqueos no se pueden evitar totalmente, si se siguenciertas convenciones de codificacin se puede reducir su generacin. Laminimizacin de los interbloqueos puede aumentar el rendimiento de lastransacciones y reducir la sobrecarga del sistema, debido a que:
Se revierten menos transacciones, al deshacer todo el trabajo que realizala transaccin.
Las aplicaciones vuelven a enviar menos transacciones debido a que serevirtieron cuando se produjo el interbloqueo.
Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx
FIIS - UNI - Carlos Janjachi12
-
7/31/2019 SO_sesion_5
13/15
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 enON para que las transacciones de lectura confirmada utilicen lasversiones 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 Janjachi13
-
7/31/2019 SO_sesion_5
14/15
Interbloqueo
Fuente: http://msdn.microsoft.com/es-es/library/ms177433(v=sql.90).aspx
FIIS - UNI - Carlos Janjachi14
-
7/31/2019 SO_sesion_5
15/15
Gracias
15