SO_sesion_5

download SO_sesion_5

of 15

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

    [email protected]

    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