BLOQUEOS MUTUOSEntorno multiprogramación  Varios procesos puedencompetir por un número finito de recursosProceso solicita...
BLOQUEOS MUTUOS                    Modelado del SistemaUn sistema se componen de un conjunto finito de recursos(unidades d...
BLOQUEOS MUTUOS                       EjemploSuponga que dos procesos quieren quemar un documentodigitalizado en un CD.Pro...
BLOQUEOS MUTUOS                  Secuencia de uso de recursos• Solicitud• Uso                       Llamadas al Sistema• L...
BLOQUEOS MUTUOS              Condiciones para el bloqueo mutuo1. Exclusión Mutua   Sólo un proceso podrá usar el recurso2....
BLOQUEOS MUTUOS              Condiciones para el bloqueo mutuo4. Espera circular   Debe existir un conjunto {P0,P1..,Pn} d...
BLOQUEOS MUTUOS                  Modelación de Bloqueos Grafos de Asignación de RecursosNodos  Procesos y RecursosArcos ...
BLOQUEOS MUTUOS                  Modelación de BloqueosEjemploProcesos  A, B, C         Recursos  R, S, TAsignaciones   ...
BLOQUEOS MUTUOS             Estrategias para enfrentar los Bloqueos• Ignorar todo el problema : Quizá si nos olvidamos de ...
BLOQUEOS MUTUOS            Algoritmo para detectar un BloqueoAlgoritmo aplicable a cada nodo “N” de la gráfica:1. Se consi...
BLOQUEOS MUTUOS             Algoritmo para detectar un Bloqueo…Continuación Algoritmo5. Se elige al azar un arco de salida...
BLOQUEOS MUTUOS             Algoritmo para detectar un BloqueoEjemplo: Sistema con 7 (siete) procesos (“A” a “G”) y 6 (sei...
BLOQUEOS MUTUOS              Cómo recuperarse de un BloqueoEstrategias -- Apropiación de RecursosArrebatar de manera tempo...
BLOQUEOS MUTUOS              Cómo recuperarse de un BloqueoEstrategias – Eliminación de recursosEscoger como víctima un pr...
BLOQUEOS MUTUOS                   Prevenir el BloqueoDiseñar un sistema donde quede excluida la posibilidad debloqueoAnula...
BLOQUEOS MUTUOS                      Prevenir el BloqueoRetener y esperarHacer que los procesos soliciten todos sus recurs...
BLOQUEOS MUTUOS                   Prevenir el BloqueoNo apropiaciónSi a un proceso se le niega el uso de un recurso  libe...
BLOQUEOS MUTUOS                     Prevenir el BloqueoEspera circularAsignar prioridades a los recursosEjemplo.1. Impreso...
BLOQUEOS MUTUOS               Técnicas para Evitar BloqueosBloqueo Mutuo  Cuando un proceso pide recursos, en algúnmoment...
BLOQUEOS MUTUOS               Técnicas para Evitar BloqueosObligar a cada proceso a definir el número máximo derecursos qu...
BLOQUEOS MUTUOS               Técnicas para Evitar BloqueosEstados Seguros e insegurosEl sistema puede asignar recursos a ...
BLOQUEOS MUTUOS                  Técnicas para Evitar BloqueosEstructuras para implementar el algoritmon  Número de proce...
BLOQUEOS MUTUOS                 Técnicas para Evitar BloqueosEstructuras para implementar el algoritmoNecesidad: Matriz de...
BLOQUEOS MUTUOS                  Técnicas para Evitar BloqueosAlgoritmo de Seguridad – Un sistema está en estado seguro???...
BLOQUEOS MUTUOS                Técnicas para Evitar Bloqueos3. Trabajo = Trabajo + AsignacióniFin[i] = trueIr al paso 24. ...
BLOQUEOS MUTUOS                  Técnicas para Evitar BloqueosAlgoritmo de Solicitud de RecursosSea Solicitudi el vector d...
BLOQUEOS MUTUOS                  Técnicas para Evitar BloqueosAlgoritmo de Solicitud de Recursos2. Si Solicitudi <= Dispon...
BLOQUEOS MUTUOS               Técnicas para Evitar BloqueosEjemploConsidere un sistema con cinco procesos, P0 a P4 y tres ...
BLOQUEOS MUTUOS              Técnicas para Evitar BloqueosEjemploSuponga que, en el instante T0, se tomó la siguienteinsta...
BLOQUEOS MUTUOS                Técnicas para Evitar BloqueosEjemploAplicar el algoritmo de solicitud de recursos          ...
BLOQUEOS MUTUOS               Técnicas para Evitar BloqueosVentajas del Algorimo del Banquero• Ofrece una forma de asignar...
BLOQUEOS MUTUOS               Técnicas para Evitar BloqueosDesventajasRequiere una población de usuarios constanteMultipro...
Bloqueos mutuos
Próxima SlideShare
Cargando en…5
×

Bloqueos mutuos

2.536 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
2.536
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
85
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Bloqueos mutuos

  1. 1. BLOQUEOS MUTUOSEntorno multiprogramación  Varios procesos puedencompetir por un número finito de recursosProceso solicita un recurso• No está disponible  Espera• Puede que no cambie de estado  Los recursos solicitadosestán en manos de otros procesos que también están enesperaInterbloqueoProblema similar  Inanición, aplazamiento indefinido obloqueo indefinido
  2. 2. BLOQUEOS MUTUOS Modelado del SistemaUn sistema se componen de un conjunto finito de recursos(unidades de cinta, impresoras, CPU, etc..)Procesos compiten por los recursosSi el sistema tiene por dos CPU, se dice que tiene dosejemplaresTodos los S.O deben otorgar a un proceso (en formatemporal) acceso exclusivo a ciertos recursos.
  3. 3. BLOQUEOS MUTUOS EjemploSuponga que dos procesos quieren quemar un documentodigitalizado en un CD.Proceso A solicita autorización para usar el escáner y se leconcede.Proceso B solicita primero el quemador de CD y también sele concede.Ahora A, pide el quemador de CD, pero se le niega porque Bno lo ha liberadoB solicita el escáner, pero sin liberar el quemador de CD. PROCESOS A Y B ESTÁN BLOQUEADOS
  4. 4. BLOQUEOS MUTUOS Secuencia de uso de recursos• Solicitud• Uso Llamadas al Sistema• LiberaciónEl recurso no está disponible cuando se solicita• El proceso solicitante debe esperar• En algunos S.O el proceso se bloquea automáticamente ydespierta cuando dicho recurso esté disponible• La solicitud falla y el proceso debe esperar para pedir elrecurso.
  5. 5. BLOQUEOS MUTUOS Condiciones para el bloqueo mutuo1. Exclusión Mutua Sólo un proceso podrá usar el recurso2. 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
  6. 6. BLOQUEOS MUTUOS Condiciones para el bloqueo mutuo4. 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
  7. 7. BLOQUEOS MUTUOS Modelación de Bloqueos Grafos de Asignación de RecursosNodos  Procesos y RecursosArcos  De un proceso a un recurso  Solicitud  De un recurso a un proceso  AsignaciónCiclos  Indica la existencia de un bloqueo
  8. 8. BLOQUEOS MUTUOS Modelación de BloqueosEjemploProcesos  A, B, C Recursos  R, S, TAsignaciones SolicitudesR asignado a A A solicita a SS asignado a B B solicita a TT asignado a C C solicita a RPregunta. ¿Está bloqueado este sistema y, en tal caso, cuálesson los procesos bloqueados?.
  9. 9. BLOQUEOS MUTUOS Estrategias para enfrentar los Bloqueos• Ignorar todo el problema : Quizá si nos olvidamos de él, él seolvidará de nosotrosAlgoritmo del Avestruz•Detectar y recuperarse del bloqueo : Dejar que se presentenbloqueos mutuos, detectarlos y tomar medidas•Prevenir el bloqueo : Anular una de las cuatro condicionesnecesarias para que haya un bloqueo mutuo• Evitar el bloqueo : Asignación cuidadosa de recursos
  10. 10. BLOQUEOS MUTUOS Algoritmo para detectar un BloqueoAlgoritmo 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.
  11. 11. BLOQUEOS MUTUOS Algoritmo para detectar un Bloqueo…Continuación Algoritmo5. 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.
  12. 12. BLOQUEOS MUTUOS Algoritmo para detectar un BloqueoEjemplo: 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álesson los procesos bloqueados?.
  13. 13. BLOQUEOS MUTUOS Cómo recuperarse de un BloqueoEstrategias -- Apropiación de RecursosArrebatar de manera temporal un recurso a su actualposeedor y dárselo a otro proceso.ManualmenteLa selección del proceso a suspender depende de qué procesostienen recursos que pueden quitarse con facilidad
  14. 14. BLOQUEOS MUTUOS Cómo recuperarse de un BloqueoEstrategias – Eliminación de recursosEscoger como víctima un proceso que no se encuentre en elciclo, a fin de liberar recursos.Eliminar sucesivamente los procesos bloqueadosLiberar todos los procesos y recursos
  15. 15. BLOQUEOS MUTUOS Prevenir el BloqueoDiseñar un sistema donde quede excluida la posibilidad debloqueoAnular una de las cuatro condiciones necesarias para quehaya un bloqueo mutuoExclusión MutuaJamás asignar un recurso en forma exclusiva a un soloproceso.Inconveniente  El S.O debe soportar la exclusión mutua.Ejemplo: Escribir en un archivo.
  16. 16. BLOQUEOS MUTUOS Prevenir el BloqueoRetener y esperarHacer que los procesos soliciten todos sus recursos antes decomenzar a ejecutarseInconveniente  Muchos procesos no saben, antes de iniciarse ejecución, cuántos recursos van a necesitar.No hará uso óptimo de los recursosS/ Exigir a un proceso que solicita un recurso que primerolibere en forma temporal todos los que tiene.
  17. 17. BLOQUEOS MUTUOS Prevenir el BloqueoNo apropiaciónSi a un proceso se le niega el uso de un recurso  liberartodos los recursosEspera circularTodo proceso tiene derecho a utilizar un recurso en todomomento. Si necesita un segundo recurso, deberá liberar elprimero
  18. 18. BLOQUEOS MUTUOS Prevenir el BloqueoEspera circularAsignar prioridades a los recursosEjemplo.1. Impresora2. Escáner3. Graficador4. Unidad de cinta5. Unidad de CDImposible llegar a un ordenamiento que satisfaga a todos
  19. 19. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosBloqueo Mutuo  Cuando un proceso pide recursos, en algúnmomento pedirá mas.El sistema debe tener la capacidad de distinguir si se puedeotorgar sin peligro un recurso o no, y solo efecttuar laasignación si no hay peligro.¿Hay algún algoritmo que siempre pueda evitar los bloqueosmutuos tomando la decisión correcta todo el tiempo?
  20. 20. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosObligar a cada proceso a definir el número máximo derecursos que podría necesitarRevisar dinámicamente el estado de asignación de recursos – Número de recursos disponibles y asignados – Demandas máximas de los procesos
  21. 21. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosEstados Seguros e insegurosEl sistema puede asignar recursos a cada proceso Secuencia seguraBloqueo mutuo  Estado inseguroAlgoritmo del Banquero  DijkstraCuando un proceso nuevo entra en el sistema, debe declararel número máximo de recursos que podría necesitar
  22. 22. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosEstructuras para implementar el algoritmon  Número de procesos del Sistemam  Número de recursosDisponible : Vector de longitud mDisponible( j ) = k;Máx: Matriz de n*m  Demanda máxima de cada procesoMáx[ i, j ] = kAsignación : Matriz de n*m  Número de recursos que sehan asignado a cada procesoAsignación [ i, j ] = k
  23. 23. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosEstructuras para implementar el algoritmoNecesidad: Matriz de n*m  Recursos que todavia le faltan acada procesoNecesidad[ i ,j ] = kNecesidad[ i, j ] = Máx[ i, j ] - Asignación [ i, j ] = k
  24. 24. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosAlgoritmo de Seguridad – Un sistema está en estado seguro???1. Sean Trabajo y Fin vectores con longitud m y n. Asignar losvalores inicialesTrabajo = Disponible y Fin[i]=false para i = 1, 2, ...,n2. Buscar un i tal quea. Fin[i] = false, yb. Necesidadi <= TrabajoSi no existe tal i, continuar con el paso 4
  25. 25. BLOQUEOS MUTUOS Técnicas para Evitar Bloqueos3. Trabajo = Trabajo + AsignacióniFin[i] = trueIr al paso 24. Si Fin[i] = true para todo i, el sistema está en un estadoseguro
  26. 26. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosAlgoritmo de Solicitud de RecursosSea 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 sureserva máxima
  27. 27. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosAlgoritmo de Solicitud de Recursos2. Si Solicitudi <= Disponible, ir a paso 3. En caso contrario, Pideberá esperar, ya que los recursos no están disponibles3. Hacer que el sistema simule haber asignado al proceso Pilos recursos que solicitó modificando el estado como sigue:Disponible = Disponible – Solicitudi;Asignacióni = Asignacióni + Solicitudi;Necesidadi = Necesidadi - Solicitudi
  28. 28. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosEjemploConsidere un sistema con cinco procesos, P0 a P4 y tres tiposde recursos A, B y C. El tipo de recursos de A tiene 10ejemplares, 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
  29. 29. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosEjemploSuponga que, en el instante T0, se tomó la siguienteinstantánea del sistema: Necesidad = Máx - Asignación Necesidad •El sistema está en un estado seguro? ABCP0 7 4 3 •Qué pasa si llega la siguiente solicitud. Solicitud1 = (1,0,2)P1 1 2 2P2 6 0 0 Busque una secuencia de procesosP3 0 1 1 que satisfaga los criterios deP4 4 3 1 seguridad.
  30. 30. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosEjemploAplicar 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 1Aplicar 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)??
  31. 31. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosVentajas del Algorimo del Banquero• Ofrece una forma de asignar recursos• Permite la ejecución de tareas que tendrían que esperar enuna situación de prevención del bloqueo mutuoDesventajasRequiere un número fijo de recursos asignablesNo es posible contar que será siempre constante el número derecursos
  32. 32. BLOQUEOS MUTUOS Técnicas para Evitar BloqueosDesventajasRequiere una población de usuarios constanteMultiprogramaciónEl algoritmo necesita que los usuarios declaren poranticipado sus necesidadesAsignación de recursos dinámica

×