SlideShare una empresa de Scribd logo
1 de 33
BLOQUEOS MUTUOS
Entorno multiprogramación  Varios procesos pueden
competir por un número finito de recursos

Proceso solicita un recurso
• No está disponible  Espera
• Puede que no cambie de estado  Los recursos solicitados
están en manos de otros procesos que también están en
espera

Interbloqueo

Problema similar  Inanición, aplazamiento indefinido o
bloqueo indefinido
BLOQUEOS MUTUOS
                    Modelado del Sistema
Un sistema se componen de un conjunto finito de recursos
(unidades de cinta, impresoras, CPU, etc..)


Procesos compiten por los recursos


Si el sistema tiene por dos CPU, se dice que tiene dos
ejemplares


Todos los S.O deben otorgar a un proceso (en forma
temporal) acceso exclusivo a ciertos recursos.
BLOQUEOS MUTUOS
                       Ejemplo
Suponga que dos procesos quieren quemar un documento
digitalizado en un CD.

Proceso A solicita autorización para usar el escáner y se le
concede.
Proceso B solicita primero el quemador de CD y también se
le concede.

Ahora A, pide el quemador de CD, pero se le niega porque B
no lo ha liberado
B solicita el escáner, pero sin liberar el quemador de CD.


        PROCESOS A Y B ESTÁN BLOQUEADOS
BLOQUEOS MUTUOS
                  Secuencia de uso de recursos
• Solicitud
• Uso                       Llamadas al Sistema
• Liberación


El recurso no está disponible cuando se solicita
• El proceso solicitante debe esperar
• En algunos S.O el proceso se bloquea automáticamente y
despierta cuando dicho recurso esté disponible
• La solicitud falla y el proceso debe esperar para pedir el
recurso.
BLOQUEOS MUTUOS
              Condiciones para el bloqueo mutuo

1. Exclusión Mutua
   Sólo un proceso podrá usar el recurso

2. Retener y esperar
   Los procesos que tienen recursos previamente otorgados
   pueden solicitar otros recursos.

3. No apropiación
   Un recurso no puede ser arrebatado a otro proceso
BLOQUEOS MUTUOS
              Condiciones para el bloqueo mutuo

4. Espera circular
   Debe existir un conjunto {P0,P1..,Pn} de procesos en
   espera tal que P0 está esperando un recurso que fué
   adquirido por P1, P1 está esperando un recurso que fué
   adquirido por    P2,….., Pn-1 está esperando un proceso
   que fué adquirido por Pn y Pn está esperando un recurso
   que fué adquirido por P0
BLOQUEOS MUTUOS
                  Modelación de Bloqueos
 Grafos de Asignación de Recursos




Nodos  Procesos y Recursos
Arcos  De un proceso a un recurso  Solicitud
       De un recurso a un proceso  Asignación
Ciclos  Indica la existencia de un bloqueo
BLOQUEOS MUTUOS
                  Modelación de Bloqueos

Ejemplo
Procesos  A, B, C         Recursos  R, S, T

Asignaciones               Solicitudes
R asignado a A             A solicita a S
S asignado a B             B solicita a T
T asignado a C             C solicita a R


Pregunta. ¿Está bloqueado este sistema y, en tal caso, cuáles
son los procesos bloqueados?.
BLOQUEOS MUTUOS
             Estrategias para enfrentar los Bloqueos

• Ignorar todo el problema : Quizá si nos olvidamos de él, él se
olvidará de nosotros
Algoritmo del Avestruz


•Detectar y recuperarse del bloqueo : Dejar que se presenten
bloqueos mutuos, detectarlos y tomar medidas


•Prevenir el bloqueo : Anular una de las cuatro condiciones
necesarias para que haya un bloqueo mutuo


• Evitar el bloqueo : Asignación cuidadosa de recursos
BLOQUEOS MUTUOS
            Algoritmo para detectar un Bloqueo
Algoritmo aplicable a cada nodo “N” de la gráfica:
1. Se considera a “N” como nodo inicial.
2. Se inicializan:
   La estructura de datos “L”como una lista vacía.
  Todos los arcos como no marcados.
3. Se añade el nodo activo al final de “L” y se verifica si el
    nodo aparece en “L” dos veces:
  Si aparece dos veces existe un ciclo y el algoritmo termina.
4. Desde el nodo dado se verifica si existen arcos que salgan
    de dicho nodo y no estén marcados:
  En caso afirmativo se va al paso 5.
  En caso negativo se va al paso 6.
BLOQUEOS MUTUOS
             Algoritmo para detectar un Bloqueo
…Continuación Algoritmo
5. Se elige al azar un arco de salida no marcado y se le marca:
  Luego se sigue este arco hasta el nuevo nodo activo y se
   regresa al paso 3.
6. Se ha llegado a un punto donde no se puede continuar:
  Se regresa al nodo anterior, es decir al que estaba activo
   antes del actual.
 Se señala de nuevo como nodo activo.
 Se va al paso 3.
 Si este nodo era el nodo inicial, la gráfica no contiene ciclos
    y el algoritmo termina.
BLOQUEOS MUTUOS
             Algoritmo para detectar un Bloqueo
Ejemplo: Sistema con 7 (siete) procesos (“A” a “G”) y 6 (seis)
recursos (“R” a “W”):
La posesión de los recursos es la siguiente:
El proceso A posee a R y desea a S.
El proceso B no posee recurso alguno y desea a T.
El proceso C no posee recurso alguno y desea a S.
El proceso D posee a U y desea a S y a T.
El proceso E posee a T y desea a V.
El proceso F posee a W y desea a S.
El proceso G posee a V y desea a U.
Pregunta : ¿Está bloqueado este sistema y, en tal caso, cuáles
son los procesos bloqueados?.
BLOQUEOS MUTUOS
              Cómo recuperarse de un Bloqueo

Estrategias -- Apropiación de Recursos
Arrebatar de manera temporal un recurso a su actual
poseedor y dárselo a otro proceso.


Manualmente


La selección del proceso a suspender depende de qué procesos
tienen recursos que pueden quitarse con facilidad
BLOQUEOS MUTUOS
              Cómo recuperarse de un Bloqueo

Estrategias – Eliminación de recursos
Escoger como víctima un proceso que no se encuentre en el
ciclo, a fin de liberar recursos.


Eliminar sucesivamente los procesos bloqueados


Liberar todos los procesos y recursos
BLOQUEOS MUTUOS
                   Prevenir el Bloqueo
Diseñar un sistema donde quede excluida la posibilidad de
bloqueo


Anular una de las cuatro condiciones necesarias para que
haya un bloqueo mutuo


Exclusión Mutua
Jamás asignar un recurso en forma exclusiva a un solo
proceso.
Inconveniente  El S.O debe soportar la exclusión mutua.
Ejemplo: Escribir en un archivo.
BLOQUEOS MUTUOS
                      Prevenir el Bloqueo
Retener y esperar
Hacer que los procesos soliciten todos sus recursos antes de
comenzar a ejecutarse


Inconveniente  Muchos procesos no saben, antes de iniciar
se ejecución, cuántos recursos van a necesitar.


No hará uso óptimo de los recursos


S/ Exigir a un proceso que solicita un recurso que primero
libere en forma temporal todos los que tiene.
BLOQUEOS MUTUOS
                   Prevenir el Bloqueo
No apropiación
Si a un proceso se le niega el uso de un recurso  liberar
todos los recursos


Espera circular
Todo proceso tiene derecho a utilizar un recurso en todo
momento. Si necesita un segundo recurso, deberá liberar el
primero
BLOQUEOS MUTUOS
                     Prevenir el Bloqueo
Espera circular
Asignar prioridades a los recursos

Ejemplo.
1. Impresora
2. Escáner
3. Graficador
4. Unidad de cinta
5. Unidad de CD

Imposible llegar a un ordenamiento que satisfaga a todos
BLOQUEOS MUTUOS
               Técnicas para Evitar Bloqueos
Bloqueo Mutuo  Cuando un proceso pide recursos, en algún
momento pedirá mas.

El sistema debe tener la capacidad de distinguir si se puede
otorgar sin peligro un recurso o no, y solo efecttuar la
asignación si no hay peligro.


¿Hay algún algoritmo que siempre pueda evitar los bloqueos
mutuos tomando la decisión correcta todo el tiempo?
BLOQUEOS MUTUOS
               Técnicas para Evitar Bloqueos

Obligar a cada proceso a definir el número máximo de
recursos que podría necesitar

Revisar dinámicamente el estado de asignación de recursos
     – Número de recursos disponibles y asignados
     – Demandas máximas de los procesos
BLOQUEOS MUTUOS
               Técnicas para Evitar Bloqueos
Estados Seguros e inseguros
El sistema puede asignar recursos a cada proceso 
Secuencia segura

Bloqueo mutuo  Estado inseguro

Algoritmo del Banquero  Dijkstra


Cuando un proceso nuevo entra en el sistema, debe declarar
el número máximo de recursos que podría necesitar
BLOQUEOS MUTUOS
                  Técnicas para Evitar Bloqueos
Estructuras para implementar el algoritmo
n  Número de procesos del Sistema
m  Número de recursos


Disponible : Vector de longitud m
Disponible( j ) = k;
Máx: Matriz de n*m  Demanda máxima de cada proceso
Máx[ i, j ] = k
Asignación : Matriz de n*m  Número de recursos que se
han asignado a cada proceso
Asignación [ i, j ] = k
BLOQUEOS MUTUOS
                 Técnicas para Evitar Bloqueos

Estructuras para implementar el algoritmo
Necesidad: Matriz de n*m  Recursos que todavia le faltan a
cada proceso
Necesidad[ i ,j ] = k


Necesidad[ i, j ] = Máx[ i, j ] - Asignación [ i, j ] = k
BLOQUEOS MUTUOS
                  Técnicas para Evitar Bloqueos

Algoritmo de Seguridad – Un sistema está en estado seguro???


1. Sean Trabajo y Fin vectores con longitud m y n. Asignar los
valores iniciales
Trabajo = Disponible y Fin[i]=false para i = 1, 2, ...,n


2. Buscar un i tal que
a. Fin[i] = false, y
b. Necesidadi <= Trabajo
Si no existe tal i, continuar con el paso 4
BLOQUEOS MUTUOS
                Técnicas para Evitar Bloqueos

3. Trabajo = Trabajo + Asignacióni
Fin[i] = true
Ir al paso 2


4. Si Fin[i] = true para todo i, el sistema está en un estado
seguro
BLOQUEOS MUTUOS
                  Técnicas para Evitar Bloqueos

Algoritmo de Solicitud de Recursos
Sea Solicitudi el vector de solicitudes del proceso Pi.

Si Solicitudi [ j ] = k, el proceso Pi quiere k recursos de Rj.

Cuando Pi solicita recursos, se hace lo siguiente:


1. Si Solicitudi <= Necesidadi, ir al paso 2. En caso contrario,
indicar una condición de error, pues el proceso ha excedido su
reserva máxima
BLOQUEOS MUTUOS
                  Técnicas para Evitar Bloqueos

Algoritmo de Solicitud de Recursos
2. Si Solicitudi <= Disponible, ir a paso 3. En caso contrario, Pi
deberá esperar, ya que los recursos no están disponibles



3. Hacer que el sistema simule haber asignado al proceso Pi
los recursos que solicitó modificando el estado como sigue:
Disponible = Disponible – Solicitudi;
Asignacióni = Asignacióni + Solicitudi;
Necesidadi = Necesidadi - Solicitudi
BLOQUEOS MUTUOS
               Técnicas para Evitar Bloqueos
Ejemplo
Considere un sistema con cinco procesos, P0 a P4 y tres tipos
de recursos A, B y C. El tipo de recursos de A tiene 10
ejemplares, B tiene 5 ejemplares y C tiene 7 ejemplares

                   Asignación     Máx     Disponible
                   ABC          ABC       ABC
       P0          0 1 0        7 5 3     3 3 2
       P1          2 0 0        3 2 2
       P2          3 0 2        9 0 2
       P3          2 1 1        2 2 2
       P4          0 0 2        4 3 3
BLOQUEOS MUTUOS
              Técnicas para Evitar Bloqueos
Ejemplo
Suponga que, en el instante T0, se tomó la siguiente
instantánea del sistema:
      Necesidad = Máx - Asignación

           Necesidad   •El sistema está en un estado seguro?
           ABC
P0         7 4 3
                       •Qué pasa si llega la siguiente
                       solicitud. Solicitud1 = (1,0,2)
P1         1 2 2
P2         6 0 0       Busque una secuencia de procesos
P3         0 1 1       que satisfaga los criterios de
P4         4 3 1       seguridad.
BLOQUEOS MUTUOS
                Técnicas para Evitar Bloqueos
Ejemplo
Aplicar el algoritmo de solicitud de recursos
                    Asignación Necesidad    Disponible
                    ABC         ABC         ABC
       P0           0 1 0       7 4 3       2 3 0
       P1           3 0 2       0 2 0
       P2           3 0 2       6 0 0
       P3           2 1 1       0 1 1
       P4           0 0 2       4 3 1

Aplicar el algoritmo de seguridad
• Qué sucede si llega una solicitud de P4 con (3,3,0)??
• Qué sucede si llega una solicitud de P2 con (0,2,0)??
BLOQUEOS MUTUOS
               Técnicas para Evitar Bloqueos

Ventajas del Algorimo del Banquero
• Ofrece una forma de asignar recursos
• Permite la ejecución de tareas que tendrían que esperar en
una situación de prevención del bloqueo mutuo


Desventajas
Requiere un número fijo de recursos asignables
No es posible contar que será siempre constante el número de
recursos
BLOQUEOS MUTUOS
               Técnicas para Evitar Bloqueos

Desventajas
Requiere una población de usuarios constante
Multiprogramación


El algoritmo necesita que los usuarios declaren por
anticipado sus necesidades
Asignación de recursos dinámica

Más contenido relacionado

La actualidad más candente (20)

Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Arquitectura de Von Neumann
Arquitectura de Von NeumannArquitectura de Von Neumann
Arquitectura de Von Neumann
 
Bloqueos mutuos
Bloqueos mutuosBloqueos mutuos
Bloqueos mutuos
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
 
Algoritmo SJF
Algoritmo SJFAlgoritmo SJF
Algoritmo SJF
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Estructuras Repetitivas con PSeInt (Parte 2)
Estructuras Repetitivas con PSeInt (Parte 2)Estructuras Repetitivas con PSeInt (Parte 2)
Estructuras Repetitivas con PSeInt (Parte 2)
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Exclusión mutua
Exclusión mutuaExclusión mutua
Exclusión mutua
 
Clase 5 -_interbloqueo
Clase 5 -_interbloqueoClase 5 -_interbloqueo
Clase 5 -_interbloqueo
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
Listas
ListasListas
Listas
 
Tabla De Transicion
Tabla De TransicionTabla De Transicion
Tabla De Transicion
 

Similar a Entorno multiprogramación y bloqueos mutuos

Modulo 2 interbloqueos
Modulo 2 interbloqueosModulo 2 interbloqueos
Modulo 2 interbloqueosJOSE MENDOZA
 
Kelly salina sistemas operativos
Kelly salina sistemas operativosKelly salina sistemas operativos
Kelly salina sistemas operativostecnologica
 
Kelly sistemas operativos
Kelly  sistemas operativosKelly  sistemas operativos
Kelly sistemas operativostecnologica
 
Interbloqueosproyect ofinal
Interbloqueosproyect ofinalInterbloqueosproyect ofinal
Interbloqueosproyect ofinalfhavilap
 
Problemas basicos de comunicación
Problemas basicos de comunicaciónProblemas basicos de comunicación
Problemas basicos de comunicaciónAlex Acosta
 
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptxInterbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptxssuser948499
 
Bloqueo muto
Bloqueo mutoBloqueo muto
Bloqueo mutomirian
 
Abrazo Mortal - UCC Leon
Abrazo Mortal - UCC LeonAbrazo Mortal - UCC Leon
Abrazo Mortal - UCC LeonUCC
 

Similar a Entorno multiprogramación y bloqueos mutuos (20)

Bloqueos _
Bloqueos _Bloqueos _
Bloqueos _
 
Modulo 2 interbloqueos
Modulo 2 interbloqueosModulo 2 interbloqueos
Modulo 2 interbloqueos
 
Bloqueo mutuo
Bloqueo mutuoBloqueo mutuo
Bloqueo mutuo
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
1modulo2seccion5
1modulo2seccion51modulo2seccion5
1modulo2seccion5
 
Sistoper Bloqueos Mutuos
Sistoper Bloqueos MutuosSistoper Bloqueos Mutuos
Sistoper Bloqueos Mutuos
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Kelly salina sistemas operativos
Kelly salina sistemas operativosKelly salina sistemas operativos
Kelly salina sistemas operativos
 
Kelly
KellyKelly
Kelly
 
Kelly salina
Kelly salinaKelly salina
Kelly salina
 
Kelly
KellyKelly
Kelly
 
Kelly sistemas operativos
Kelly  sistemas operativosKelly  sistemas operativos
Kelly sistemas operativos
 
Kelly salina
Kelly salinaKelly salina
Kelly salina
 
Interbloqueosproyect ofinal
Interbloqueosproyect ofinalInterbloqueosproyect ofinal
Interbloqueosproyect ofinal
 
Problemas basicos de comunicación
Problemas basicos de comunicaciónProblemas basicos de comunicación
Problemas basicos de comunicación
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptxInterbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
 
Bloqueo muto
Bloqueo mutoBloqueo muto
Bloqueo muto
 
Deadlock
DeadlockDeadlock
Deadlock
 
Abrazo Mortal - UCC Leon
Abrazo Mortal - UCC LeonAbrazo Mortal - UCC Leon
Abrazo Mortal - UCC Leon
 

Entorno multiprogramación y bloqueos mutuos

  • 1.
  • 2. BLOQUEOS MUTUOS Entorno multiprogramación  Varios procesos pueden competir por un número finito de recursos Proceso solicita un recurso • No está disponible  Espera • Puede que no cambie de estado  Los recursos solicitados están en manos de otros procesos que también están en espera Interbloqueo Problema similar  Inanición, aplazamiento indefinido o bloqueo indefinido
  • 3. BLOQUEOS MUTUOS Modelado del Sistema Un sistema se componen de un conjunto finito de recursos (unidades de cinta, impresoras, CPU, etc..) Procesos compiten por los recursos Si el sistema tiene por dos CPU, se dice que tiene dos ejemplares Todos los S.O deben otorgar a un proceso (en forma temporal) acceso exclusivo a ciertos recursos.
  • 4. BLOQUEOS MUTUOS Ejemplo Suponga que dos procesos quieren quemar un documento digitalizado en un CD. Proceso A solicita autorización para usar el escáner y se le concede. Proceso B solicita primero el quemador de CD y también se le concede. Ahora A, pide el quemador de CD, pero se le niega porque B no lo ha liberado B solicita el escáner, pero sin liberar el quemador de CD. PROCESOS A Y B ESTÁN BLOQUEADOS
  • 5. BLOQUEOS MUTUOS Secuencia de uso de recursos • Solicitud • Uso Llamadas al Sistema • Liberación El recurso no está disponible cuando se solicita • El proceso solicitante debe esperar • En algunos S.O el proceso se bloquea automáticamente y despierta cuando dicho recurso esté disponible • La solicitud falla y el proceso debe esperar para pedir el recurso.
  • 6. BLOQUEOS MUTUOS Condiciones para el bloqueo mutuo 1. Exclusión Mutua Sólo un proceso podrá usar el recurso 2. Retener y esperar Los procesos que tienen recursos previamente otorgados pueden solicitar otros recursos. 3. No apropiación Un recurso no puede ser arrebatado a otro proceso
  • 7. BLOQUEOS MUTUOS Condiciones para el bloqueo mutuo 4. Espera circular Debe existir un conjunto {P0,P1..,Pn} de procesos en espera tal que P0 está esperando un recurso que fué adquirido por P1, P1 está esperando un recurso que fué adquirido por P2,….., Pn-1 está esperando un proceso que fué adquirido por Pn y Pn está esperando un recurso que fué adquirido por P0
  • 8. BLOQUEOS MUTUOS Modelación de Bloqueos Grafos de Asignación de Recursos Nodos  Procesos y Recursos Arcos  De un proceso a un recurso  Solicitud  De un recurso a un proceso  Asignación Ciclos  Indica la existencia de un bloqueo
  • 9. BLOQUEOS MUTUOS Modelación de Bloqueos Ejemplo Procesos  A, B, C Recursos  R, S, T Asignaciones Solicitudes R asignado a A A solicita a S S asignado a B B solicita a T T asignado a C C solicita a R Pregunta. ¿Está bloqueado este sistema y, en tal caso, cuáles son los procesos bloqueados?.
  • 10. BLOQUEOS MUTUOS Estrategias para enfrentar los Bloqueos • Ignorar todo el problema : Quizá si nos olvidamos de él, él se olvidará de nosotros Algoritmo del Avestruz •Detectar y recuperarse del bloqueo : Dejar que se presenten bloqueos mutuos, detectarlos y tomar medidas •Prevenir el bloqueo : Anular una de las cuatro condiciones necesarias para que haya un bloqueo mutuo • Evitar el bloqueo : Asignación cuidadosa de recursos
  • 11. BLOQUEOS MUTUOS Algoritmo para detectar un Bloqueo Algoritmo aplicable a cada nodo “N” de la gráfica: 1. Se considera a “N” como nodo inicial. 2. Se inicializan: La estructura de datos “L”como una lista vacía. Todos los arcos como no marcados. 3. Se añade el nodo activo al final de “L” y se verifica si el nodo aparece en “L” dos veces: Si aparece dos veces existe un ciclo y el algoritmo termina. 4. Desde el nodo dado se verifica si existen arcos que salgan de dicho nodo y no estén marcados: En caso afirmativo se va al paso 5. En caso negativo se va al paso 6.
  • 12. BLOQUEOS MUTUOS Algoritmo para detectar un Bloqueo …Continuación Algoritmo 5. Se elige al azar un arco de salida no marcado y se le marca: Luego se sigue este arco hasta el nuevo nodo activo y se regresa al paso 3. 6. Se ha llegado a un punto donde no se puede continuar: Se regresa al nodo anterior, es decir al que estaba activo antes del actual. Se señala de nuevo como nodo activo. Se va al paso 3. Si este nodo era el nodo inicial, la gráfica no contiene ciclos y el algoritmo termina.
  • 13. BLOQUEOS MUTUOS Algoritmo para detectar un Bloqueo Ejemplo: Sistema con 7 (siete) procesos (“A” a “G”) y 6 (seis) recursos (“R” a “W”): La posesión de los recursos es la siguiente: El proceso A posee a R y desea a S. El proceso B no posee recurso alguno y desea a T. El proceso C no posee recurso alguno y desea a S. El proceso D posee a U y desea a S y a T. El proceso E posee a T y desea a V. El proceso F posee a W y desea a S. El proceso G posee a V y desea a U. Pregunta : ¿Está bloqueado este sistema y, en tal caso, cuáles son los procesos bloqueados?.
  • 14. BLOQUEOS MUTUOS Cómo recuperarse de un Bloqueo Estrategias -- Apropiación de Recursos Arrebatar de manera temporal un recurso a su actual poseedor y dárselo a otro proceso. Manualmente La selección del proceso a suspender depende de qué procesos tienen recursos que pueden quitarse con facilidad
  • 15. BLOQUEOS MUTUOS Cómo recuperarse de un Bloqueo Estrategias – Eliminación de recursos Escoger como víctima un proceso que no se encuentre en el ciclo, a fin de liberar recursos. Eliminar sucesivamente los procesos bloqueados Liberar todos los procesos y recursos
  • 16. BLOQUEOS MUTUOS Prevenir el Bloqueo Diseñar un sistema donde quede excluida la posibilidad de bloqueo Anular una de las cuatro condiciones necesarias para que haya un bloqueo mutuo Exclusión Mutua Jamás asignar un recurso en forma exclusiva a un solo proceso. Inconveniente  El S.O debe soportar la exclusión mutua. Ejemplo: Escribir en un archivo.
  • 17. BLOQUEOS MUTUOS Prevenir el Bloqueo Retener y esperar Hacer que los procesos soliciten todos sus recursos antes de comenzar a ejecutarse Inconveniente  Muchos procesos no saben, antes de iniciar se ejecución, cuántos recursos van a necesitar. No hará uso óptimo de los recursos S/ Exigir a un proceso que solicita un recurso que primero libere en forma temporal todos los que tiene.
  • 18. BLOQUEOS MUTUOS Prevenir el Bloqueo No apropiación Si a un proceso se le niega el uso de un recurso  liberar todos los recursos Espera circular Todo proceso tiene derecho a utilizar un recurso en todo momento. Si necesita un segundo recurso, deberá liberar el primero
  • 19. BLOQUEOS MUTUOS Prevenir el Bloqueo Espera circular Asignar prioridades a los recursos Ejemplo. 1. Impresora 2. Escáner 3. Graficador 4. Unidad de cinta 5. Unidad de CD Imposible llegar a un ordenamiento que satisfaga a todos
  • 20. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Bloqueo Mutuo  Cuando un proceso pide recursos, en algún momento pedirá mas. El sistema debe tener la capacidad de distinguir si se puede otorgar sin peligro un recurso o no, y solo efecttuar la asignación si no hay peligro. ¿Hay algún algoritmo que siempre pueda evitar los bloqueos mutuos tomando la decisión correcta todo el tiempo?
  • 21. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Obligar a cada proceso a definir el número máximo de recursos que podría necesitar Revisar dinámicamente el estado de asignación de recursos – Número de recursos disponibles y asignados – Demandas máximas de los procesos
  • 22. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Estados Seguros e inseguros El sistema puede asignar recursos a cada proceso  Secuencia segura Bloqueo mutuo  Estado inseguro Algoritmo del Banquero  Dijkstra Cuando un proceso nuevo entra en el sistema, debe declarar el número máximo de recursos que podría necesitar
  • 23. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Estructuras para implementar el algoritmo n  Número de procesos del Sistema m  Número de recursos Disponible : Vector de longitud m Disponible( j ) = k; Máx: Matriz de n*m  Demanda máxima de cada proceso Máx[ i, j ] = k Asignación : Matriz de n*m  Número de recursos que se han asignado a cada proceso Asignación [ i, j ] = k
  • 24. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Estructuras para implementar el algoritmo Necesidad: Matriz de n*m  Recursos que todavia le faltan a cada proceso Necesidad[ i ,j ] = k Necesidad[ i, j ] = Máx[ i, j ] - Asignación [ i, j ] = k
  • 25. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Algoritmo de Seguridad – Un sistema está en estado seguro??? 1. Sean Trabajo y Fin vectores con longitud m y n. Asignar los valores iniciales Trabajo = Disponible y Fin[i]=false para i = 1, 2, ...,n 2. Buscar un i tal que a. Fin[i] = false, y b. Necesidadi <= Trabajo Si no existe tal i, continuar con el paso 4
  • 26. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos 3. Trabajo = Trabajo + Asignacióni Fin[i] = true Ir al paso 2 4. Si Fin[i] = true para todo i, el sistema está en un estado seguro
  • 27. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Algoritmo de Solicitud de Recursos Sea Solicitudi el vector de solicitudes del proceso Pi. Si Solicitudi [ j ] = k, el proceso Pi quiere k recursos de Rj. Cuando Pi solicita recursos, se hace lo siguiente: 1. Si Solicitudi <= Necesidadi, ir al paso 2. En caso contrario, indicar una condición de error, pues el proceso ha excedido su reserva máxima
  • 28. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Algoritmo de Solicitud de Recursos 2. Si Solicitudi <= Disponible, ir a paso 3. En caso contrario, Pi deberá esperar, ya que los recursos no están disponibles 3. Hacer que el sistema simule haber asignado al proceso Pi los recursos que solicitó modificando el estado como sigue: Disponible = Disponible – Solicitudi; Asignacióni = Asignacióni + Solicitudi; Necesidadi = Necesidadi - Solicitudi
  • 29. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Ejemplo Considere un sistema con cinco procesos, P0 a P4 y tres tipos de recursos A, B y C. El tipo de recursos de A tiene 10 ejemplares, B tiene 5 ejemplares y C tiene 7 ejemplares Asignación Máx Disponible ABC ABC ABC P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3
  • 30. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Ejemplo Suponga que, en el instante T0, se tomó la siguiente instantánea del sistema: Necesidad = Máx - Asignación Necesidad •El sistema está en un estado seguro? ABC P0 7 4 3 •Qué pasa si llega la siguiente solicitud. Solicitud1 = (1,0,2) P1 1 2 2 P2 6 0 0 Busque una secuencia de procesos P3 0 1 1 que satisfaga los criterios de P4 4 3 1 seguridad.
  • 31. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Ejemplo Aplicar el algoritmo de solicitud de recursos Asignación Necesidad Disponible ABC ABC ABC P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 2 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 Aplicar el algoritmo de seguridad • Qué sucede si llega una solicitud de P4 con (3,3,0)?? • Qué sucede si llega una solicitud de P2 con (0,2,0)??
  • 32. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Ventajas del Algorimo del Banquero • Ofrece una forma de asignar recursos • Permite la ejecución de tareas que tendrían que esperar en una situación de prevención del bloqueo mutuo Desventajas Requiere un número fijo de recursos asignables No es posible contar que será siempre constante el número de recursos
  • 33. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos Desventajas Requiere una población de usuarios constante Multiprogramación El algoritmo necesita que los usuarios declaren por anticipado sus necesidades Asignación de recursos dinámica