SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Bloqueos Mutuos

 Modelo del Sistema
 Caracterización de Bloqueos Mutuos
 Métodos para Manejar Bloqueos Mutuos
 Prevención de Bloqueos Mutuos
 Como Evitar Bloqueos Mutuos
 Detección de Bloqueos Mutuos
 Recuperación de un Estado de Bloqueo Mutuo
 Aproximación Combinada para el Manejo de Bloqueos
 Mutuos




El Problema de Compartir Recursos

 Cuando muchos procesos compiten por
 relativamente pocos recursos y el sistema no es
 capaz de dar servicio a todos los procesos en el
 sistema.
    Una carencia de sincronización de
    procesos puede dar lugar a dos condiciones
    extremas:
        El bloqueo mutuo (abrazo mortal)
        La inanición




                                                     1
El Problema del Bloqueo Mutuo
  Un conjunto de procesos esta bloqueado cuando cada
  uno posee un recurso y esta a la espera de obtener un
  recurso poseído por otro proceso del conjunto.
  Ejemplo:
     El sistema tiene 2 drives de cinta.
     P1 y P2 cada uno posee un drive de cinta y cada uno
     necesita el otro.
  Ejemplo:
     Los semáforos A y B, inicializados a 1



                   P0              P1
               wait (A);         wait(B)
               wait (B);         wait(A)




         Ejemplo del Cruce del Puente
        o el de la escalera de incendios




Trafico solo en una dirección.
Cada sección del puente puede ser visto como un
recurso.
Si un bloqueo mutuo ocurre, este puede ser resuelto si
un carro retrocede (renuncie a recursos).
Varios carros pueden tener que retroceder si el bloqueo
mutuo ocurre.
La inanición es posible.




                                                           2
Bloqueo Mutuo

        El bloqueo mutuo es mas serio que la inanición
        (posposición indefinida) porque afecta mas de un
        trabajo (la totalidad del sistema, eventualmente).
        Los bloqueos mutuos eran poco frecuentes en los
        primeros sistemas en batch porque los trabajos incluían
        una lista completa de los recursos que necesitaban para
        ejecutarse y el sistema operativo se aseguraba que estos
        estuvieran libres y asignados antes de poner, al trabajo,
        en la cola de LISTOS.
        Los bloqueos mutuos se hicieron mas frecuentes con los
        sistemas interactivos, porque estos son mas flexibles y
        mejoran el uso de recursos al compartirlos en forma
        dinámica.




       Caracterización de Bloqueos Mutuos
Surge si se presentan simultaneamente las cuatro condiciones:
      Exclusión mutua: solo un proceso por vez puede usar el
      recurso (solo una persona tiene acceso a un escalón ).
      Retención y espera: debe existir un proceso que esté
      reteniendo por lo menos un recurso y esté esperando
      adquirir recursos adicionales que en ese momento estén
      siendo retenidos por otro proceso (la persona se empeña
      en no retirarse).
      No apropiación: un recurso solo puede ser liberado
      voluntariamente por el proceso que lo está reteniendo, una
      vez que dicho proceso a completado su tarea (cada
      escalón esta asignado al que sube, o al que baja, tanto
      tiempo como sea necesario).
      Espera circular: (cada persona espera que la otra libere
      el escalón) debe existir un conjunto {P0, P1, …, P0} de
      procesos en espera, tal que P0 esté esperando un recurso
      que está retenido por P1, P1 está esperando un recurso
      que está retenido por P2, …, Pn–1 está esperando por un
      recurso retenido por Pn, y Pn está esperando por un
      recurso retenido por P0 .




                                                                    3
Caracterización de Bloqueos Mutuos

 Si se puede eliminar una cualesquiera de las
 condiciones para bloqueo mutuo, este se
 resolverá.
 Es posible prevenir que la cuatro condiciones
 se den al mismo tiempo, con lo cual se
 evitarían los bloqueos mutuos.
 Estas condiciones se pueden modelar utilizando
 graficas dirigidas.




              Modelado del Sistema

  Tipos de recursos R1, R2, . . ., Rm
       Ciclos de CPU, espacio de memoria, dispositivos de I/O
  Cada tipo de recurso Ri tiene Wi instancias.
  Cada proceso utiliza el recurso como sigue:
     solicitud
     uso
     liberación




                                                                4
Gráfica de Asignación de Recursos

Un conjunto de vértices V y un conjuto de aristas dirigidas E.
       V es particionado en dos tipos:
          P = {P1, P2, …, Pn}, el conjunto consistente de todos los
          procesos en el sistema.

          R = {R1, R2, …, Rm}, el conjunto consistente de todos los
          tipos de recursos en el sistema.
       Arista de petición – arista dirigida P1 → Rj
       Arista de asignación –arista dirigida Rj → Pi




Gráfica de Asignación de Recursos(Cont.)

        Proceso




        Tipo de recurso con 4 instancias



        Pi solicita una instancia de Rj
                             Pi
                                      Rj
        Pi está reteniendo una instancia de Rj

                              Pi
                                      Rj




                                                                      5
Hechos Básicos
     Si un gráfico no contiene ciclos ⇒ no existe bloqueo
     mutuo.

     Si un gráfico contiene un ciclo ⇒
        Si solo hay una instancia por tipo de recurso, entonces
        se da el bloqueo mutuo.
        Si hay varias instancias por tipo de recurso, entonces se
        da la posibilidad de bloqueo mutuo.




Ejemplo: Gráfica de Asignación de Recursos




                                                                    6
Gráfica con un Bloqueo Mutuo




Gráfica con un Ciclo pero sin Bloqueo Mutuo




Nota: O bien los recursos se liberan antes que ocurra el bloqueo mutuo;
  esto en sistemas donde solo hay una instancia de cada tipo de recurso.




                                                                           7
Métodos para Manejar Bloqueos Mutuos

        Podemos utilizar un protocolo para asegurar que el
        sistema nunca entrará en un estado de bloqueo
        mutuo.

        Podemos permitir que el sistema entre en un estado de
        bloqueo mutuo y luego hacer una recuperación.

        Podemos ignorar el problema y pretender que los
        bloqueos mutuos nunca ocurren en el sistema; usado por
        la mayoría de los sistemas operativos, incluyendo a
        UNIX.




      Prevención de Bloqueos Mutuos
Restringir las formas en las que la petición puede ser hecha.

      Exclusión Mutua – no requerido por recursos compartidos
      (Spool por ejem.); debe de cumplirse en el caso de
      recursos que no puedan compartirse (memoria, CPU, o
      dispositivos dedicados).

      Retener y Esperar – debemos garantizar que, siempre que
      un proceso solicite un recurso no retenga algún otro.
         Requiere que cada proceso solicite y se le asignen todos sus
         recursos antes de iniciar su ejecución ( en el momento de la
         creación ),
             o permitir que un proceso solicite recursos sólo cuando
             no tenga alguno.
         Baja utilización de recursos; se da la posibilidad de inanición.




                                                                            8
Prevención de Bloqueos Mutuos(Cont.)
 Espera Circular – imponer un ordenamiento total de todos los tipos
 de recursos (numerarlos: impresora = 1, disco = 2, etc), y
 requerir que cada proceso solicite sus recursos en orden creciente
 de enumeración ( ordenamiento jerarquico que obliga a
 anticipar el orden en que utilizara los recursos).

 No Apropiación –
    Si un proceso que está reteniendo algunos recursos solicita otro
    recurso que no le puede ser asignado inmediatamente, entonces
    todos los recursos que actualmente son retenidos son apropiados
    (se liberan implícitamente).
        Los recursos apropiados se agregan a la lista de recursos que el
        proceso está esperando.
           – El proceso se reiniciará solamente cuando pueda volver a
             obtener sus antiguos recursos, así como los nuevos que está
             solicitando.




         Como Evitar Bloqueos Mutuos
Incluso si un sistema operativo no puede eliminar una de las
condiciones de bloqueo mutuo, puede evitar uno.Se requiere que el
sistema tenga alguna información adicional a priori disponible.
     El modelo más simple y útil requiere que cada proceso
     declare el número máximo de recursos de cada tipo
     que puede necesitar.

         El algoritmo de evitación de bloqueos mutuos (algoritmo
         del banquero) examina dinámicamente el estado de la
         asignación de recursos para asegurar que nunca podrá
         existir una condición de espera-circular.

     El estado (Tabla) de asignación de recursos es
     definido por el número de recursos disponibles y de
     recursos asignados, y por la máxima demanda de los
     procesos.




                                                                           9
Algoritmo del Banquero
A ninguno de los clientes se le concederá un
préstamo que exceda el capital total del banco
A todos los clientes se les dará un limite de crédito
máximo al abrir una cuenta
A ningún cliente se le permitirá que pida prestado
mas allá de su limite
La suma de todos los prestamos no excederá el
capital total del banco
   Estado seguro: la institución tiene todavía suficiente dinero
   disponible para satisfacer las solicitudes máximas
   Estado inseguro: el dinero disponible no puede satisfacer
   la solicitud máxima de ningún cliente
       En tanto el capital de la institución sea menor que la
       cantidad máxima disponible para los prestamos
       individuales, no puede garantizar que tendrá
       capacidad de cubrir las solicitudes de crédito




                    Estado Seguro
Cuando un proceso solicita un recurso disponible, el sistema
deberá decidir si la asignación inmediata deja al sistema en
un estado seguro.

Un sistema esta en estado seguro si existe una secuencia
segura de todos los procesos.

La secuencia <P1, P2, …, Pn> es segura si para cada Pi, los
recursos que Pi puede aún solicitar pueden ser satisfechos por
los recursos disponibles actualmente + los recursos retenidos
por todos los otros Pj, con j<I.
   Si Pi necesita recursos que no están inmediatamente disponibles,
   entonces Pi debe de esperar hasta que todos los Pj hayan
   terminado.
   Cuando Pj esta terminando, Pi puede obtener recursos
   necesarios, ejecutar, regresar recursos asignados, y terminar.
   Cuando Pi termina, Pi+1 puede obtener sus recursos necesarios, y
   así sucesivamente.




                                                                      10
Hechos Básicos

   Si un sistema esta en estado seguro ⇒ no se dan los
   bloqueos mutuos.

   Si un sistema esta en estado inseguro ⇒ existe la
   posibilidad de bloqueos mutuos (candidato excelente).

   Si existe evitación ⇒ aseguramos que el sistema nunca
   caerá en estado inseguro.




Seguro, Inseguro , Estado de Bloqueo Mutuo




                                                           11
Detección de Bloqueos Mutuos

     Aunque el algoritmo del banquero se ha utilizado en
     sistemas de pocos recursos, no siempre resulta practico
     para la mayor parte de los sistemas interactivos
     El costo por carga general (overhead) incurrida al
     ejecutar el algoritmo del banquero puede resultar muy
     elevado, ya que debe correr con cada solicitud
     Los recursos no se utilizan bien porque el algoritmo
     supone el peor caso y, como resultado, conserva
     recursos vitales no disponibles como protección contra
     estados inseguros
     Los bloqueos mutuos se pueden detectar,
     elaborando graficas de recursos dirigidos y
     buscando ciclos, este algoritmo se puede ejecutar
     siempre que sea apropiado: cuando la producción se
     ha deteriorado o cuando se queje un usuario o cada
     hora, etc.




Gráfica de Asignación de Recursos (Algoritmo)


     Arista de demanda Pi → Rj indica que el proceso Pj
     puede solicitar el recurso Rj en algún momento en el
     futuro; representada por una línea punteada.

     Una arista de demanda se convierte en arista de
     petición cuando un proceso solicita un recurso.

     Cuando un recurso es liberado por un proceso, una
     arista de asignación se convierte en arista de demanda.

     Los recursos se deben demandar por adelantado en
     el sistema.




                                                               12
Gráfica de Asignación de Recursos para Evitación de
                  Bloqueos Mutuos




Estado Inseguro en Gráfica de Asignación de Recursos




                                                       13
Algoritmo del Banquero

  Condiciones:

     Instancias múltiples.

     Cada proceso deberá reclamar por adelantado su
     máximo uso de recursos.

     Cuando un proceso solicita un recurso puede tener que
     esperar.

     Cuando un proceso consigue todos sus recursos deberá
     de regresarlos en una cantidad de tiempo finita.




Estructuras de Datos para el Algoritmo del
                Banquero
n = número de procesos , y m = número de tipos de recursos.
    Available: Vector de longitud m. Si available [j] = k,
    existen k instancias disponibles del tipo de recurso
    Rj .
    Max: matriz n x m. Si Max [i,j] = k, entonces el proceso
    Pi puede solicitar cuando mucho k instancias del tipo
    de recurso Rj.
    Allocation: matriz n x m. Si Allocation[i,j] = k entonces Pi
    tiene actualmente asignadas k instancias de Rj.
    Need: matriz n x m. Si Need[i,j] = k, entonces Pi puede
    necesitar k instancias más de Rj para completar su
    tarea.

           Need [i,j] = Max[i,j] – Allocation [i,j].




                                                                   14
Algoritmo de Seguridad

      1. Work y Finish son vectores de longitud m y n,
         respectivamente. Inicializamos:
                    Work = Available
                    Finish [i] = false for i - 1,3, …, n.
      2. Encontrar una i que cumpla con ambas condiciones :
          (a) Finish [i] = false
          (b) Needi ≤ Work
          If no existe tal i, go to 4.
      3. Work = Work + Allocationi
         Finish[i] = true
         go to 2.
      4. If Finish [i] == true para toda i, then el sistema se
         encuentra en estado seguro.




Algoritmo de Solicitud-Recursos para el Proceso Pi

       Request = vector de solicitud para el proceso Pi.
        If Requesti [j] = k then el proceso Pi necesita k instancias
        del tipo de recurso Rj.
          1. If Requesti ≤ Needi go to 2.
             Otherwise, inicie condición de error, ya que el proceso ha
             exedido su demanda máxima.
          2. If Requesti ≤ Available, go to 3.
             Otherwise Pi deberá esperar, ya que no hay recursos
             disponibles.
          3. Simular la asignación de recursos solicitados para Pi por
             medio de la modificación del estado como sigue :
                        Available = Available – Requesti;
                        Allocationi = Allocationi + Requesti;
                        Needi = Needi – Requesti;;
               • If estado seguro ⇒ los recursos son asignados a Pi.
               • If estado inseguro ⇒ Pi debera esperar, y el anterior
                 estado de solicitud-recursos es reestablecido




                                                                          15
Ejemplo de Algoritmo del Banquero

 5 procesos P0 hasta P4; 3 tipos de recursos
 A (10 instancias), B (5 instancias), y C (7 instancias).
 Instante de tiempo T0:
               Allocation    Max      Available
                 ABC        ABC         ABC
          P0      010        753        332
           P1     200        322
           P2     302        902
           P3     211        222
           P4     002        433




                   Ejemplo (Cont.)

El contenido de la matriz Need esta definido por:
                                        Max – Allocation.
                         Need
                         ABC
                   P0    743
                   P1    122
                   P2    600
                   P3    011
                   P4    431
El sistema se encuentra en estado seguro ya que la
secuencia < P1, P3, P4, P2, P0> satisface el criterio de
seguridad.




                                                            16
Ejemplo: P1 Solicita (1,0,2) (Cont.)

Compruebe que Request ≤ Available; esto es,
(1,0,2) ≤ (3,3,2) ⇒ true.
               Allocation    Need      Available
                 ABC         ABC         ABC
            P0 0 1 0         743         230
            P1 3 0 2         020
            P2 3 0 1         600
            P3 2 1 1         011
            P4 0 0 2         431
El algoritmo de ejecución segura muestra que la secuencia
<P1, P3, P4, P0, P2> satisface el requerimiento de seguridad.
¿Puede la solicitud por (3,3,0) para P4 ser otorgada?
¿Puede la solicitud por (0,2,0) para P0 ser otorgada?




    Detección de Bloqueos Mutuos

Permitir al sistema entrar en estado de bloqueo
mutuo

    Algoritmo de Detección

        Esquema de Recuperación




                                                                17
Una sola Instancia de cada Tipo de Recurso

        Mantener gráfica de espera
            Los nodos son procesos.
            Pi → Pj I si Pi esta esperando por Pj.

        Periódicamente invoca un algoritmo que busca por un
        ciclo en la gráfica .

        Un algoritmo para detectar un ciclo en una gráfica
        requiere de n2 operaciones, donde n es el número de
        vértices en la gráfica.




   Gráficas de Localización de Recursos y de Espera




     Gráfica de Localización de Recursos     Gráfica de Espera correspondiente




                                                                                 18
Varias Instancias de un Tipo de Recursos

   Available: Un vector de longitud m indica el número
   de recursos disponibles de cada tipo.

   Allocation: Una matriz n x m define el número de
   recursos de cada tipo actualmente asignadas a cada
   proceso.

   Request: Una matriz n x m indica la solicitud actual de
   cada proceso.
   If Request [ij] = k, then el proceso Pi esta solicitando k
   instancias más del tipo de recurso Rj.




                 Algoritmo de Detección

  1. Work y Finish son vectores de longitud m y n,
     respectivamente; Inicializamos:
      (a) Work = Available
      (b) For i = 1,2, …, n,
          if Allocationi ≠ 0, then Finish[i] = false;
          otherwise, Finish[i] = true.
  2. Encuentre un índice i tal que cumpla ambas :
      (a) Finish[i] == false
      (b) Requesti ≤ Work

      If no existe tal i , go to 4.




                                                                19
Algoritmo de Detección (Cont.)

  3. Work = Work + Allocationi
     Finish[i] = true
     go to 2.

  4. If Finish[i] == false, para alguna i, 1 ≤ i ≤ n, then el
     sistema está en estado de bloqueo mutuo.
     Además, if Finish[i] == false, then Pi está bloqueado .



 El algoritmo requiere del orden de O(m x n2) operaciones para
 detectar si el sistema se encuentra en estado de bloqueos
 mutuos




     Ejemplo del Algoritmo de Detección

5 procesos P0 hasta P4 ; 3 tipos de recursos
A (7 instancias), B (2 instancias), y C (6 instancias).
Instante de tiempo T0:
              Allocation Request Available
                ABC         ABC         ABC
          P0 0 1 0          000          000
          P1 2 0 0          202
          P2 3 0 3          000
          P3 2 1 1          100
          P4 0 0 2          002
La secuencia <P0, P2, P3, P1, P4> resultara en Finish[i] = true para
toda i.




                                                                       20
Ejemplo (Cont.)
P2 solicita una instancia adicional del tipo C.
                           Request
                            ABC
                        P0 0 0 0
                        P1 2 0 1
                       P2 0 0 1
                       P3 1 0 0
                       P4 0 0 2
¿Estado del sistema?
   Puede reclamar recursos retenidos por el proceso P0, pero
   son insuficientes para ejecutar las solicitudes de otros
   procesos.
   El bloqueo mutuo existe, consiste de los procesos P1, P2,
   P3, y P4.




   Uso del Algoritmo de Detección

Cuando , y con que frecuencia , invocarlo depende de:
   ¿Que tan frecuente es posible que ocurra un bloqueo
   mutuo?
   ¿Cuantos procesos necesitan ser retrocedidos ?
      Uno por cada ciclo disjunto

Si el algoritmo de detección es invocado arbitrariamente,
podrá haber muchos ciclos en la gráfica de recursos y así
no estaríamos en capacidad de decir cual de los muchos
procesos en bloqueo mutuo “causaron” el bloqueo.




                                                               21
Bloqueo Mutuo de Tráfico




 Es obvio que se requiere la intervención exterior para eliminar
 el bloqueo mutuo: eliminar algún vehículo de la intersección o
                 hacer que una línea retroceda




Recuperación de un Proceso de Bloqueo Mutuo:
          Terminación de Procesos
       Abortar todos los procesos bloqueados .

       Abortar un proceso cada vez hasta que el ciclo de
       bloqueo sea eliminado.

       ¿En que orden debe escogerse el aborto?
          Prioridad del proceso.
          Que tanto tiempo el proceso se ha computado, y cuanto le
          falta para terminar.
          Recursos que el proceso ha usado.
          Recursos que el proceso necesita para completar.
          Cuantos procesos necesitaran ser terminados.
          Es el proceso interactivo o en batch




                                                                     22
Recuperación de un Proceso de Bloqueo Mutuo:
             Apropiación de Recursos

       Seleccionar una victima – minimizar el costo .

       Retroceso – regresar a algún estado seguro,
       restablecer el proceso para ese estado.

          Inanición – un mismo proceso puede ser escogido
          siempre como victima, incluir el número de retrocesos en
          el factor de costo.




Aproximación Combinada en el Manejo de Bloqueos


       Combine las tres aproximaciones básicas
          Prevención
          Evitación
          Detección
       permitiendo el uso de la aproximación optima para cada
       uno de los recursos en el sistema.

       Partición de recursos en clases ordenadas
       jerárquicamente.

          Usar la técnica más apropiada para el manejo de bloqueos
          mutuos dentro de cada clase.




                                                                     23
Resumen
El sistema operativo debe de asignar de manera dinámica un numero
limitado de recursos y al mismo tiempo evitar los bloqueos mutuos y
la inanición
Métodos pata tratar los bloqueos mutuos.
   Prevención: impidiendo las cuatro condiciones se presenten eliminando, al
   menos, una de ellas
       Exclusión mutua
       Retención de recursos
       No apropiatividad
       Espera circular
   Evitación: al identificar
       Estados seguros e inseguros y mantener suficientes recursos en
       reserva para garantizar la terminación de los trabajos activos
   Detección y recuperación: se apoya en la selección de victimas (trabajos
   que deben de terminar antes de completar su ejecución y reiniciar desde el
   principio
Métodos pata tratar la inanición:
   Envejecimiento




                                                                                24

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Bloqueo mutuo
Bloqueo mutuoBloqueo mutuo
Bloqueo mutuo
 
Abrazo Mortal - UCC Leon
Abrazo Mortal - UCC LeonAbrazo Mortal - UCC Leon
Abrazo Mortal - UCC Leon
 
Candados bd
Candados bdCandados bd
Candados bd
 
Chap 15epin
Chap 15epinChap 15epin
Chap 15epin
 
Chap 15dpin
Chap 15dpinChap 15dpin
Chap 15dpin
 
Chap 15fpin
Chap 15fpinChap 15fpin
Chap 15fpin
 

Destacado

Borrador proyectoiiiii1234
Borrador proyectoiiiii1234Borrador proyectoiiiii1234
Borrador proyectoiiiii1234anep
 
Template Modelo de Negocios
Template Modelo de NegociosTemplate Modelo de Negocios
Template Modelo de NegociosMartin Giorgetti
 
Apostila 1º bimestre 3º ano
Apostila 1º bimestre 3º anoApostila 1º bimestre 3º ano
Apostila 1º bimestre 3º anoAlcir Costa
 
Clase+teorica frutas+y+hortalizas-2015
Clase+teorica frutas+y+hortalizas-2015Clase+teorica frutas+y+hortalizas-2015
Clase+teorica frutas+y+hortalizas-2015Juan Carlos
 
Southern Fried Trolling: The Art Of Bless Your Heart
Southern Fried Trolling: The Art Of Bless Your HeartSouthern Fried Trolling: The Art Of Bless Your Heart
Southern Fried Trolling: The Art Of Bless Your Heartakgraner
 
Historia de la economía, doctrina economica, escuelas economicas
Historia de la economía, doctrina economica, escuelas economicasHistoria de la economía, doctrina economica, escuelas economicas
Historia de la economía, doctrina economica, escuelas economicasJuan Armando Reyes Mendoza
 
Los 5 Retos Más Comunes de Innovación - eBook
Los 5 Retos Más Comunes de Innovación - eBook Los 5 Retos Más Comunes de Innovación - eBook
Los 5 Retos Más Comunes de Innovación - eBook Innovare
 
Integración del personal a la empresa
Integración del personal a la empresaIntegración del personal a la empresa
Integración del personal a la empresaCinelandia
 
Apuntes Historia del Arte (a mano) COU
Apuntes Historia del Arte (a mano) COUApuntes Historia del Arte (a mano) COU
Apuntes Historia del Arte (a mano) COUmayores25
 
Manual producción artesanal de semillas
Manual producción artesanal de semillasManual producción artesanal de semillas
Manual producción artesanal de semillasJose Pacheco
 
Matriz de requisitos legales y otros en el sg-sst
Matriz de requisitos legales y otros en el sg-sstMatriz de requisitos legales y otros en el sg-sst
Matriz de requisitos legales y otros en el sg-sst.. ..
 

Destacado (20)

Borrador proyectoiiiii1234
Borrador proyectoiiiii1234Borrador proyectoiiiii1234
Borrador proyectoiiiii1234
 
Template Modelo de Negocios
Template Modelo de NegociosTemplate Modelo de Negocios
Template Modelo de Negocios
 
Manual de geogebra
Manual de geogebraManual de geogebra
Manual de geogebra
 
Apostila 1º bimestre 3º ano
Apostila 1º bimestre 3º anoApostila 1º bimestre 3º ano
Apostila 1º bimestre 3º ano
 
Clase+teorica frutas+y+hortalizas-2015
Clase+teorica frutas+y+hortalizas-2015Clase+teorica frutas+y+hortalizas-2015
Clase+teorica frutas+y+hortalizas-2015
 
Southern Fried Trolling: The Art Of Bless Your Heart
Southern Fried Trolling: The Art Of Bless Your HeartSouthern Fried Trolling: The Art Of Bless Your Heart
Southern Fried Trolling: The Art Of Bless Your Heart
 
Cuadro pni
Cuadro pniCuadro pni
Cuadro pni
 
9111 07-01229
9111 07-012299111 07-01229
9111 07-01229
 
1.4 la construcción social del aprendizaje
1.4 la construcción  social del aprendizaje1.4 la construcción  social del aprendizaje
1.4 la construcción social del aprendizaje
 
Historia de la economía, doctrina economica, escuelas economicas
Historia de la economía, doctrina economica, escuelas economicasHistoria de la economía, doctrina economica, escuelas economicas
Historia de la economía, doctrina economica, escuelas economicas
 
Los 5 Retos Más Comunes de Innovación - eBook
Los 5 Retos Más Comunes de Innovación - eBook Los 5 Retos Más Comunes de Innovación - eBook
Los 5 Retos Más Comunes de Innovación - eBook
 
Integración del personal a la empresa
Integración del personal a la empresaIntegración del personal a la empresa
Integración del personal a la empresa
 
Trabajo
TrabajoTrabajo
Trabajo
 
Apuntes Historia del Arte (a mano) COU
Apuntes Historia del Arte (a mano) COUApuntes Historia del Arte (a mano) COU
Apuntes Historia del Arte (a mano) COU
 
Manual producción artesanal de semillas
Manual producción artesanal de semillasManual producción artesanal de semillas
Manual producción artesanal de semillas
 
Modulo b
Modulo bModulo b
Modulo b
 
Visión estratégica de la Perforación en México
Visión estratégica de la Perforación en MéxicoVisión estratégica de la Perforación en México
Visión estratégica de la Perforación en México
 
ABOUT COLOR
ABOUT COLORABOUT COLOR
ABOUT COLOR
 
SISTEMA DE GESTION AMBIENTAL ISO 14001
SISTEMA DE GESTION AMBIENTAL ISO 14001SISTEMA DE GESTION AMBIENTAL ISO 14001
SISTEMA DE GESTION AMBIENTAL ISO 14001
 
Matriz de requisitos legales y otros en el sg-sst
Matriz de requisitos legales y otros en el sg-sstMatriz de requisitos legales y otros en el sg-sst
Matriz de requisitos legales y otros en el sg-sst
 

Similar a 1modulo2seccion5

Similar a 1modulo2seccion5 (20)

Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Sistoper Bloqueos Mutuos
Sistoper Bloqueos MutuosSistoper Bloqueos Mutuos
Sistoper Bloqueos Mutuos
 
Interbloqueosproyect ofinal
Interbloqueosproyect ofinalInterbloqueosproyect ofinal
Interbloqueosproyect ofinal
 
Kelly salina sistemas operativos
Kelly salina sistemas operativosKelly salina sistemas operativos
Kelly salina sistemas operativos
 
Kelly
KellyKelly
Kelly
 
Kelly
KellyKelly
Kelly
 
Kelly sistemas operativos
Kelly  sistemas operativosKelly  sistemas operativos
Kelly sistemas operativos
 
Kelly salina
Kelly salinaKelly salina
Kelly salina
 
Kelly salina
Kelly salinaKelly salina
Kelly salina
 
Interbloqueosproyect ofinall
Interbloqueosproyect ofinallInterbloqueosproyect ofinall
Interbloqueosproyect ofinall
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Ensayo so
Ensayo soEnsayo so
Ensayo so
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuos
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Modulo 2 interbloqueos
Modulo 2 interbloqueosModulo 2 interbloqueos
Modulo 2 interbloqueos
 
Interbloqueo
InterbloqueoInterbloqueo
Interbloqueo
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Concurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónConcurrencia interbloqueo e inanición
Concurrencia interbloqueo e inanición
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Windows
WindowsWindows
Windows
 

1modulo2seccion5

  • 1. Bloqueos Mutuos Modelo del Sistema Caracterización de Bloqueos Mutuos Métodos para Manejar Bloqueos Mutuos Prevención de Bloqueos Mutuos Como Evitar Bloqueos Mutuos Detección de Bloqueos Mutuos Recuperación de un Estado de Bloqueo Mutuo Aproximación Combinada para el Manejo de Bloqueos Mutuos El Problema de Compartir Recursos Cuando muchos procesos compiten por relativamente pocos recursos y el sistema no es capaz de dar servicio a todos los procesos en el sistema. Una carencia de sincronización de procesos puede dar lugar a dos condiciones extremas: El bloqueo mutuo (abrazo mortal) La inanición 1
  • 2. El Problema del Bloqueo Mutuo Un conjunto de procesos esta bloqueado cuando cada uno posee un recurso y esta a la espera de obtener un recurso poseído por otro proceso del conjunto. Ejemplo: El sistema tiene 2 drives de cinta. P1 y P2 cada uno posee un drive de cinta y cada uno necesita el otro. Ejemplo: Los semáforos A y B, inicializados a 1 P0 P1 wait (A); wait(B) wait (B); wait(A) Ejemplo del Cruce del Puente o el de la escalera de incendios Trafico solo en una dirección. Cada sección del puente puede ser visto como un recurso. Si un bloqueo mutuo ocurre, este puede ser resuelto si un carro retrocede (renuncie a recursos). Varios carros pueden tener que retroceder si el bloqueo mutuo ocurre. La inanición es posible. 2
  • 3. Bloqueo Mutuo El bloqueo mutuo es mas serio que la inanición (posposición indefinida) porque afecta mas de un trabajo (la totalidad del sistema, eventualmente). Los bloqueos mutuos eran poco frecuentes en los primeros sistemas en batch porque los trabajos incluían una lista completa de los recursos que necesitaban para ejecutarse y el sistema operativo se aseguraba que estos estuvieran libres y asignados antes de poner, al trabajo, en la cola de LISTOS. Los bloqueos mutuos se hicieron mas frecuentes con los sistemas interactivos, porque estos son mas flexibles y mejoran el uso de recursos al compartirlos en forma dinámica. Caracterización de Bloqueos Mutuos Surge si se presentan simultaneamente las cuatro condiciones: Exclusión mutua: solo un proceso por vez puede usar el recurso (solo una persona tiene acceso a un escalón ). Retención y espera: debe existir un proceso que esté reteniendo por lo menos un recurso y esté esperando adquirir recursos adicionales que en ese momento estén siendo retenidos por otro proceso (la persona se empeña en no retirarse). No apropiación: un recurso solo puede ser liberado voluntariamente por el proceso que lo está reteniendo, una vez que dicho proceso a completado su tarea (cada escalón esta asignado al que sube, o al que baja, tanto tiempo como sea necesario). Espera circular: (cada persona espera que la otra libere el escalón) debe existir un conjunto {P0, P1, …, P0} de procesos en espera, tal que P0 esté esperando un recurso que está retenido por P1, P1 está esperando un recurso que está retenido por P2, …, Pn–1 está esperando por un recurso retenido por Pn, y Pn está esperando por un recurso retenido por P0 . 3
  • 4. Caracterización de Bloqueos Mutuos Si se puede eliminar una cualesquiera de las condiciones para bloqueo mutuo, este se resolverá. Es posible prevenir que la cuatro condiciones se den al mismo tiempo, con lo cual se evitarían los bloqueos mutuos. Estas condiciones se pueden modelar utilizando graficas dirigidas. Modelado del Sistema Tipos de recursos R1, R2, . . ., Rm Ciclos de CPU, espacio de memoria, dispositivos de I/O Cada tipo de recurso Ri tiene Wi instancias. Cada proceso utiliza el recurso como sigue: solicitud uso liberación 4
  • 5. Gráfica de Asignación de Recursos Un conjunto de vértices V y un conjuto de aristas dirigidas E. V es particionado en dos tipos: P = {P1, P2, …, Pn}, el conjunto consistente de todos los procesos en el sistema. R = {R1, R2, …, Rm}, el conjunto consistente de todos los tipos de recursos en el sistema. Arista de petición – arista dirigida P1 → Rj Arista de asignación –arista dirigida Rj → Pi Gráfica de Asignación de Recursos(Cont.) Proceso Tipo de recurso con 4 instancias Pi solicita una instancia de Rj Pi Rj Pi está reteniendo una instancia de Rj Pi Rj 5
  • 6. Hechos Básicos Si un gráfico no contiene ciclos ⇒ no existe bloqueo mutuo. Si un gráfico contiene un ciclo ⇒ Si solo hay una instancia por tipo de recurso, entonces se da el bloqueo mutuo. Si hay varias instancias por tipo de recurso, entonces se da la posibilidad de bloqueo mutuo. Ejemplo: Gráfica de Asignación de Recursos 6
  • 7. Gráfica con un Bloqueo Mutuo Gráfica con un Ciclo pero sin Bloqueo Mutuo Nota: O bien los recursos se liberan antes que ocurra el bloqueo mutuo; esto en sistemas donde solo hay una instancia de cada tipo de recurso. 7
  • 8. Métodos para Manejar Bloqueos Mutuos Podemos utilizar un protocolo para asegurar que el sistema nunca entrará en un estado de bloqueo mutuo. Podemos permitir que el sistema entre en un estado de bloqueo mutuo y luego hacer una recuperación. Podemos ignorar el problema y pretender que los bloqueos mutuos nunca ocurren en el sistema; usado por la mayoría de los sistemas operativos, incluyendo a UNIX. Prevención de Bloqueos Mutuos Restringir las formas en las que la petición puede ser hecha. Exclusión Mutua – no requerido por recursos compartidos (Spool por ejem.); debe de cumplirse en el caso de recursos que no puedan compartirse (memoria, CPU, o dispositivos dedicados). Retener y Esperar – debemos garantizar que, siempre que un proceso solicite un recurso no retenga algún otro. Requiere que cada proceso solicite y se le asignen todos sus recursos antes de iniciar su ejecución ( en el momento de la creación ), o permitir que un proceso solicite recursos sólo cuando no tenga alguno. Baja utilización de recursos; se da la posibilidad de inanición. 8
  • 9. Prevención de Bloqueos Mutuos(Cont.) Espera Circular – imponer un ordenamiento total de todos los tipos de recursos (numerarlos: impresora = 1, disco = 2, etc), y requerir que cada proceso solicite sus recursos en orden creciente de enumeración ( ordenamiento jerarquico que obliga a anticipar el orden en que utilizara los recursos). No Apropiación – Si un proceso que está reteniendo algunos recursos solicita otro recurso que no le puede ser asignado inmediatamente, entonces todos los recursos que actualmente son retenidos son apropiados (se liberan implícitamente). Los recursos apropiados se agregan a la lista de recursos que el proceso está esperando. – El proceso se reiniciará solamente cuando pueda volver a obtener sus antiguos recursos, así como los nuevos que está solicitando. Como Evitar Bloqueos Mutuos Incluso si un sistema operativo no puede eliminar una de las condiciones de bloqueo mutuo, puede evitar uno.Se requiere que el sistema tenga alguna información adicional a priori disponible. El modelo más simple y útil requiere que cada proceso declare el número máximo de recursos de cada tipo que puede necesitar. El algoritmo de evitación de bloqueos mutuos (algoritmo del banquero) examina dinámicamente el estado de la asignación de recursos para asegurar que nunca podrá existir una condición de espera-circular. El estado (Tabla) de asignación de recursos es definido por el número de recursos disponibles y de recursos asignados, y por la máxima demanda de los procesos. 9
  • 10. Algoritmo del Banquero A ninguno de los clientes se le concederá un préstamo que exceda el capital total del banco A todos los clientes se les dará un limite de crédito máximo al abrir una cuenta A ningún cliente se le permitirá que pida prestado mas allá de su limite La suma de todos los prestamos no excederá el capital total del banco Estado seguro: la institución tiene todavía suficiente dinero disponible para satisfacer las solicitudes máximas Estado inseguro: el dinero disponible no puede satisfacer la solicitud máxima de ningún cliente En tanto el capital de la institución sea menor que la cantidad máxima disponible para los prestamos individuales, no puede garantizar que tendrá capacidad de cubrir las solicitudes de crédito Estado Seguro Cuando un proceso solicita un recurso disponible, el sistema deberá decidir si la asignación inmediata deja al sistema en un estado seguro. Un sistema esta en estado seguro si existe una secuencia segura de todos los procesos. La secuencia <P1, P2, …, Pn> es segura si para cada Pi, los recursos que Pi puede aún solicitar pueden ser satisfechos por los recursos disponibles actualmente + los recursos retenidos por todos los otros Pj, con j<I. Si Pi necesita recursos que no están inmediatamente disponibles, entonces Pi debe de esperar hasta que todos los Pj hayan terminado. Cuando Pj esta terminando, Pi puede obtener recursos necesarios, ejecutar, regresar recursos asignados, y terminar. Cuando Pi termina, Pi+1 puede obtener sus recursos necesarios, y así sucesivamente. 10
  • 11. Hechos Básicos Si un sistema esta en estado seguro ⇒ no se dan los bloqueos mutuos. Si un sistema esta en estado inseguro ⇒ existe la posibilidad de bloqueos mutuos (candidato excelente). Si existe evitación ⇒ aseguramos que el sistema nunca caerá en estado inseguro. Seguro, Inseguro , Estado de Bloqueo Mutuo 11
  • 12. Detección de Bloqueos Mutuos Aunque el algoritmo del banquero se ha utilizado en sistemas de pocos recursos, no siempre resulta practico para la mayor parte de los sistemas interactivos El costo por carga general (overhead) incurrida al ejecutar el algoritmo del banquero puede resultar muy elevado, ya que debe correr con cada solicitud Los recursos no se utilizan bien porque el algoritmo supone el peor caso y, como resultado, conserva recursos vitales no disponibles como protección contra estados inseguros Los bloqueos mutuos se pueden detectar, elaborando graficas de recursos dirigidos y buscando ciclos, este algoritmo se puede ejecutar siempre que sea apropiado: cuando la producción se ha deteriorado o cuando se queje un usuario o cada hora, etc. Gráfica de Asignación de Recursos (Algoritmo) Arista de demanda Pi → Rj indica que el proceso Pj puede solicitar el recurso Rj en algún momento en el futuro; representada por una línea punteada. Una arista de demanda se convierte en arista de petición cuando un proceso solicita un recurso. Cuando un recurso es liberado por un proceso, una arista de asignación se convierte en arista de demanda. Los recursos se deben demandar por adelantado en el sistema. 12
  • 13. Gráfica de Asignación de Recursos para Evitación de Bloqueos Mutuos Estado Inseguro en Gráfica de Asignación de Recursos 13
  • 14. Algoritmo del Banquero Condiciones: Instancias múltiples. Cada proceso deberá reclamar por adelantado su máximo uso de recursos. Cuando un proceso solicita un recurso puede tener que esperar. Cuando un proceso consigue todos sus recursos deberá de regresarlos en una cantidad de tiempo finita. Estructuras de Datos para el Algoritmo del Banquero n = número de procesos , y m = número de tipos de recursos. Available: Vector de longitud m. Si available [j] = k, existen k instancias disponibles del tipo de recurso Rj . Max: matriz n x m. Si Max [i,j] = k, entonces el proceso Pi puede solicitar cuando mucho k instancias del tipo de recurso Rj. Allocation: matriz n x m. Si Allocation[i,j] = k entonces Pi tiene actualmente asignadas k instancias de Rj. Need: matriz n x m. Si Need[i,j] = k, entonces Pi puede necesitar k instancias más de Rj para completar su tarea. Need [i,j] = Max[i,j] – Allocation [i,j]. 14
  • 15. Algoritmo de Seguridad 1. Work y Finish son vectores de longitud m y n, respectivamente. Inicializamos: Work = Available Finish [i] = false for i - 1,3, …, n. 2. Encontrar una i que cumpla con ambas condiciones : (a) Finish [i] = false (b) Needi ≤ Work If no existe tal i, go to 4. 3. Work = Work + Allocationi Finish[i] = true go to 2. 4. If Finish [i] == true para toda i, then el sistema se encuentra en estado seguro. Algoritmo de Solicitud-Recursos para el Proceso Pi Request = vector de solicitud para el proceso Pi. If Requesti [j] = k then el proceso Pi necesita k instancias del tipo de recurso Rj. 1. If Requesti ≤ Needi go to 2. Otherwise, inicie condición de error, ya que el proceso ha exedido su demanda máxima. 2. If Requesti ≤ Available, go to 3. Otherwise Pi deberá esperar, ya que no hay recursos disponibles. 3. Simular la asignación de recursos solicitados para Pi por medio de la modificación del estado como sigue : Available = Available – Requesti; Allocationi = Allocationi + Requesti; Needi = Needi – Requesti;; • If estado seguro ⇒ los recursos son asignados a Pi. • If estado inseguro ⇒ Pi debera esperar, y el anterior estado de solicitud-recursos es reestablecido 15
  • 16. Ejemplo de Algoritmo del Banquero 5 procesos P0 hasta P4; 3 tipos de recursos A (10 instancias), B (5 instancias), y C (7 instancias). Instante de tiempo T0: Allocation Max Available ABC ABC ABC P0 010 753 332 P1 200 322 P2 302 902 P3 211 222 P4 002 433 Ejemplo (Cont.) El contenido de la matriz Need esta definido por: Max – Allocation. Need ABC P0 743 P1 122 P2 600 P3 011 P4 431 El sistema se encuentra en estado seguro ya que la secuencia < P1, P3, P4, P2, P0> satisface el criterio de seguridad. 16
  • 17. Ejemplo: P1 Solicita (1,0,2) (Cont.) Compruebe que Request ≤ Available; esto es, (1,0,2) ≤ (3,3,2) ⇒ true. Allocation Need Available ABC ABC ABC P0 0 1 0 743 230 P1 3 0 2 020 P2 3 0 1 600 P3 2 1 1 011 P4 0 0 2 431 El algoritmo de ejecución segura muestra que la secuencia <P1, P3, P4, P0, P2> satisface el requerimiento de seguridad. ¿Puede la solicitud por (3,3,0) para P4 ser otorgada? ¿Puede la solicitud por (0,2,0) para P0 ser otorgada? Detección de Bloqueos Mutuos Permitir al sistema entrar en estado de bloqueo mutuo Algoritmo de Detección Esquema de Recuperación 17
  • 18. Una sola Instancia de cada Tipo de Recurso Mantener gráfica de espera Los nodos son procesos. Pi → Pj I si Pi esta esperando por Pj. Periódicamente invoca un algoritmo que busca por un ciclo en la gráfica . Un algoritmo para detectar un ciclo en una gráfica requiere de n2 operaciones, donde n es el número de vértices en la gráfica. Gráficas de Localización de Recursos y de Espera Gráfica de Localización de Recursos Gráfica de Espera correspondiente 18
  • 19. Varias Instancias de un Tipo de Recursos Available: Un vector de longitud m indica el número de recursos disponibles de cada tipo. Allocation: Una matriz n x m define el número de recursos de cada tipo actualmente asignadas a cada proceso. Request: Una matriz n x m indica la solicitud actual de cada proceso. If Request [ij] = k, then el proceso Pi esta solicitando k instancias más del tipo de recurso Rj. Algoritmo de Detección 1. Work y Finish son vectores de longitud m y n, respectivamente; Inicializamos: (a) Work = Available (b) For i = 1,2, …, n, if Allocationi ≠ 0, then Finish[i] = false; otherwise, Finish[i] = true. 2. Encuentre un índice i tal que cumpla ambas : (a) Finish[i] == false (b) Requesti ≤ Work If no existe tal i , go to 4. 19
  • 20. Algoritmo de Detección (Cont.) 3. Work = Work + Allocationi Finish[i] = true go to 2. 4. If Finish[i] == false, para alguna i, 1 ≤ i ≤ n, then el sistema está en estado de bloqueo mutuo. Además, if Finish[i] == false, then Pi está bloqueado . El algoritmo requiere del orden de O(m x n2) operaciones para detectar si el sistema se encuentra en estado de bloqueos mutuos Ejemplo del Algoritmo de Detección 5 procesos P0 hasta P4 ; 3 tipos de recursos A (7 instancias), B (2 instancias), y C (6 instancias). Instante de tiempo T0: Allocation Request Available ABC ABC ABC P0 0 1 0 000 000 P1 2 0 0 202 P2 3 0 3 000 P3 2 1 1 100 P4 0 0 2 002 La secuencia <P0, P2, P3, P1, P4> resultara en Finish[i] = true para toda i. 20
  • 21. Ejemplo (Cont.) P2 solicita una instancia adicional del tipo C. Request ABC P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 ¿Estado del sistema? Puede reclamar recursos retenidos por el proceso P0, pero son insuficientes para ejecutar las solicitudes de otros procesos. El bloqueo mutuo existe, consiste de los procesos P1, P2, P3, y P4. Uso del Algoritmo de Detección Cuando , y con que frecuencia , invocarlo depende de: ¿Que tan frecuente es posible que ocurra un bloqueo mutuo? ¿Cuantos procesos necesitan ser retrocedidos ? Uno por cada ciclo disjunto Si el algoritmo de detección es invocado arbitrariamente, podrá haber muchos ciclos en la gráfica de recursos y así no estaríamos en capacidad de decir cual de los muchos procesos en bloqueo mutuo “causaron” el bloqueo. 21
  • 22. Bloqueo Mutuo de Tráfico Es obvio que se requiere la intervención exterior para eliminar el bloqueo mutuo: eliminar algún vehículo de la intersección o hacer que una línea retroceda Recuperación de un Proceso de Bloqueo Mutuo: Terminación de Procesos Abortar todos los procesos bloqueados . Abortar un proceso cada vez hasta que el ciclo de bloqueo sea eliminado. ¿En que orden debe escogerse el aborto? Prioridad del proceso. Que tanto tiempo el proceso se ha computado, y cuanto le falta para terminar. Recursos que el proceso ha usado. Recursos que el proceso necesita para completar. Cuantos procesos necesitaran ser terminados. Es el proceso interactivo o en batch 22
  • 23. Recuperación de un Proceso de Bloqueo Mutuo: Apropiación de Recursos Seleccionar una victima – minimizar el costo . Retroceso – regresar a algún estado seguro, restablecer el proceso para ese estado. Inanición – un mismo proceso puede ser escogido siempre como victima, incluir el número de retrocesos en el factor de costo. Aproximación Combinada en el Manejo de Bloqueos Combine las tres aproximaciones básicas Prevención Evitación Detección permitiendo el uso de la aproximación optima para cada uno de los recursos en el sistema. Partición de recursos en clases ordenadas jerárquicamente. Usar la técnica más apropiada para el manejo de bloqueos mutuos dentro de cada clase. 23
  • 24. Resumen El sistema operativo debe de asignar de manera dinámica un numero limitado de recursos y al mismo tiempo evitar los bloqueos mutuos y la inanición Métodos pata tratar los bloqueos mutuos. Prevención: impidiendo las cuatro condiciones se presenten eliminando, al menos, una de ellas Exclusión mutua Retención de recursos No apropiatividad Espera circular Evitación: al identificar Estados seguros e inseguros y mantener suficientes recursos en reserva para garantizar la terminación de los trabajos activos Detección y recuperación: se apoya en la selección de victimas (trabajos que deben de terminar antes de completar su ejecución y reiniciar desde el principio Métodos pata tratar la inanición: Envejecimiento 24