Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

GESTION DE PROCESOS Procesos y tareas
Planificación de Monoprocesadores
UNIX COMP 240.
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
LÓGICA DE PROGRAMACIÓN
Administración de procesos y del procesador.
MATEMÁTICAS DISCRETAS.
Unidad 6 Interbloqueos (Dead Lock)
Contenido Introducción Tipos de recursos Modelo del sistema
PROGRAMACION DE ESTRUCTURAS DE DATOS
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Inter bloqueo DeadLock.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.
Tema 6: Clases Antonio J. Sierra.
Introducción a los SSOO Sebastián Sánchez Prieto.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
GRAFOS HUGO ARAYA CARRASCO.
Concurrencia: interbloqueo e inanición
Bloqueos Mortales Cecilia Hernández Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.
Tema 10: Gestión de Memoria
Deadlocks Abrazo Mortal Bloqueos mutuos
Unidad 4 Interbloqueos (Dead Lock)
Sistemas Operativos Procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Profesor: Rodrigo Sanhueza Figueroa
Diseño y análisis de algoritmos
UNIDAD 3: “Desarrollo Orientado a Objetos con UML”
INSTITUTO TECNOLOGICO SUPERIOR DE TAMAZUNCHALE INTEGRANTES: MAXIMO HERNANDEZ BAUTISTA CLAUDIA JIMENEZ PROCOPIO ANA LUZ RODRIGUEZ JONGUITUD LEONEL AQUINO.
Administración de Memoria
PROGRAMACIÓN DE RECURSOS.
Material de apoyo Unidad 4 Estructura de datos
ORGANIZACIÓN DE LOS DATOS PARA PROCESARLOS EN COMPUTADORA Las computadoras trabajan con datos. Aceptan y procesan datos, y comunican resultados. No pueden.
Sebastián Sánchez Prieto
Planificación de Procesos
Planificación y Gestión de procesos
Integrantes: Cerón Natalia Chillán Mireya Shweizer Arie Utreras Pamela.
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
Capítulo 7 Gestión de memoria.
Gestión de procesos Sistemas Operativos Edwin Morales
El interbloqueo Situación en la que se encuentran un conjunto de procesos, (al menos dos), tal que cada proceso del conjunto espera la ocurrencia de un.
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Administrador de procesos
Parte I. Estructuras de Datos.
Tema 10: Algoritmos voraces
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
SISTEMAS OPERATIVOS DEADLOCK ABRAZO MORTAL BLOQUEO MUTUO.
ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO
“Protocolo Dinámico de Configuración de hosts”
Teoría de Sistemas Operativos Sincronización Procesos
Departamento de Informática Universidad de Rancagua Profesor: Paula Quitral Reglas BDD.
Rendimiento de la CPU y sus factores
LSI. Freddy Veloz Sistemas Operativos
La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de.
DISEÑAR Y ELABORAR ALGORITMOS NOMBRE: LAURA PAEZ GARCIA GRADO Y GRUPO: 1 “3” MATERIA: INFORMÁTICA Y COMPUTACIÓN MAESTRO: ÁNGEL BUENDÍA TURNO: VESPERTINO.
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
INTERRUPCIONES – ABRAZO MORTAL
Introducción a los TADs
3.2.1 Administración de almacenamiento
Estructuras de Decisión
Matemáticas Discretas MISTI
MEMORIA DINÁMICA.
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
Gestión de Memoria – Parte 2
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Sistemas Operativos Tema 9: Interbloqueo.
Ciclos condicionales y exactos Estructura de control de ciclos
Transcripción de la presentación:

Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección de Deadlocks Recuperación de Deadlocks Aproximación combinada para el manejo de deadlocks

El Problema de Deadlock Un conjunto de procesos bloqueados cada uno reteniendo un recurso y esperando adquirir otro retenido por otro proceso del conjunto. Ejemplo  El sistema tiene 2 dispositivos de cinta.  P 1 y P 2 tienen una unidad de cinta cada uno y necesita la que tiene el otro.

Cruce del Puente El tráfico es en una sola dirección. Cada parte del puente puede verse como un recurso. Si ocurre un deadlock, puede resolverse si uno de los autos retrocede. Varios autos pueden tener que retroceder si ocurre un deadlock. Es posible que haya inanición.

Modelo del Sistema Tipos de recursos R 1, R 2,..., R m ciclos de CPU, espacio de memoria, dispositivos de E/S Cada recurso de tipo R i tiene W i instancias. Cada proceso utiliza un recurso de la siguiente forma:  pedir  usar  liberar

Caracterización de Deadlocks Un deadlock puede ocurrir si se dan simultaneamente las siguientes condiciones:  Exclusión mutua: sólo un procso a la vez puede usar un recurso.  Retener y esperar: un proceso retiene al menos un recurso esperando adquirir uno adicional retenido por otro proceso.  No expropiación: un recurso sólo se puede liberar en forma voluntaria por el proceso que lo retiene, después que el proceso completó su tarea.  Espera circular: existe un conjunto {P 0, P 1, …, P 0 } de procesos esperando de forma tal que P 0 está esperando por un recurso que retiene P 1, P 1 está esperando uno que es retenido por P 2, …, P n–1 está esperando un recurso retenido por P n, y P n está esperando por un proceso retenido por P 0.

Grafo de Asignación de Recursos Un conjunto de vértices V y aristas E:  V está dividido en 2 tipos: P = {P 1, P 2, …, P n }, el conjunto de todos los procesos del sistema. R = {R 1, R 2, …, R m }, el conjunto de todos los tipos de recursos del sistema.  Arista de pedido – arista dirigida P i → R j  Arista de asignación – arista dirigida R j → P i

Grafo de Asignación de Recursos (Cont.)‏ Procesos Tipo de recursos con 4 instancias P i pide una instancia del recurso R j P i tiene una instancia del recurso R j PiPi PiPi RjRj RjRj

Ejemplo de Grafo de Asignación de Recursos

Grafo de Asignación de Recursos con Deadlock

Grafo de Asignación de Recursos con un Ciclo sin Deadlock

En Resumen... Si el grafo no tiene ciclos => no existen deadlocks. Si el grafo contiene un ciclo =>  Si hay una sola instancia de cada tipo de recurso, entonces hay deadlock.  Si hay muchas instancias de cada recurso, hay posibilidad de deadlock.

Métodos para Manejo de Deadlocks Asegurar que el sistema nunca entrará en un estado de deadlock. Permitir que el sistema entre en un estado de deadlock y recuperase. Ignorar el problema como si el problema nunca pudiese suceder en el sistema; utilizado por la mayoria de los sistemas incluido UNIX.

Prevención de Deadlocks Restringir la forma en que se hace el pedido:  Exclusión mutua – no requerida para recursos que se pueden compartir; se debe mantener para recursos que no se pueden compartir.  Obtener y esperar – debe garantizar que cualquier proceso que pide un recurso, no retenga ningun otro recurso. Requiere que los procesos pidan y se les asigne todos los recursos antes de empezar a ejecutar, o permitir a los procesos pedir recursos sólo cuando no tiene ninguno. Baja utilización de recursos; posibilidad de inanición.

Prevención de Deadlocks (Cont.)‏  No expropiación – Si un proceso que retiene algun recurso requiere otro que no puede ser asignado inmediatamente, entonces los recursos retenidos son liberados. Los recursos expropiados son agregados a la lista de recursos por los cuales el proceso está esperando. Los procesos son reiniciados sólo cuando pueden recuperar sus recursos originales y los nuevos que está pidiendo.  Espera circular – impone un orden total a todos los tipos de recursos, y requiere que cada proceso pida los recursos en orden creciente.

Evitación de Deadlocks Requiere que el sistema tenga información adicional previa disponible:  El modelo más simple y util requiere que cada proceso declare el máximo numero de recursos de cada tipo que va a necesitar.  El algoritmo de evitación de deadlock examina dinamicamente el estado de asignación de recursos para asegurar que nunca se producirá una condición de espera circular.  El estado de asignación de recursos se define como el numero de recursos asignados y disponibles, y la demanda máxima de los procesos.

Estado Seguro Cuando un proceso pide un recurso disponible, el sistema decide si la asignación inmediata deja al sistema en un estado seguro. El sistema está en un estado seguro si existe una secuencia segura para todos los procesos. La secuencia es segura si para cada proceso P i, los recursos que P i todavía puede pedir puede ser satisfecho por los recursos actualmente disponibles + los recursos retenidos por todos los procesos P j, con j<i.  Si los recursos que P i necesita no están disponibles inmediatamente, entonces P i puede esperar hasta que todos los P j hayan terminado.  Cuando P j termina, P i puede obtener los recursos necesarios, ejecutar, retornar los recursos asignados y terminar.  Cuando P i termina, P i+1 puede obtener los recursos necesarios, y asi sucesivamente.

Estado Seguro, Inseguro, Deadlock

En Resumen... Si un sistema está en un estado seguro => no hay deadlocks. Si un sistema está en un estado inseguro => posibilidad de deadlock. Evitación => asegurar que el sistema nunca entrará en un estado inseguro.

Algoritmo de Asignación de Recursos Una arista de reserva P i → R j indica que el proceso P j puede pedir el recurso R j ; representado por una línea discontinua. Una arista de reserva se transforma en una de asignación cuando un proceso pide un recurso. Cuando un recurso es liberado por un proceso, la arista de asignación se convierte en una de reserva. Los recursos deben ser reservados con anticipación.

Grafo de Asignación de Recursos para la Evitación de Deadlocks

Estado Inseguro en el Grafo de Asignación de Recursos

Algoritmo del Banquero Múltiple instancias. Cada proceso debe reservar con anticipación la cantidad máxima para cada recurso. Cuando un proceso pide un recurso podría esperar. Cuando el proceso obtiene todos sus recursos los debe devolver en un plazo finito de tiempo.

Estructuras de Datos para el Algoritmo del Banquero Siendo n = número de procesos, y m = número de tipo de recursos:  Disponible: vector de longitud m. Si Disponible[j] = k, entonces hay k instancias del recurso R j disponibles.  Max: matriz de n x m. Si Max [i,j] = k, entonces el proceso P i puede pedir como máximo k instancias del recurso de tipo R j.  Asignación: matriz de n x m. Si Asignación[i,j] = k entonces P i tiene asignadas k instancias de R j.  Necesidad: matriz n x m. Si Necesidad[i,j] = k, entonces P i puede necesitar k instancias más de R j para completar su tarea. Necesidad [i,j] = Max[i,j] – Asignación [i,j].

Algoritmo de Seguridad 1.Sean Trabajo y Fin vectores de longitud m y n, respectivamente. Inicializar: Trabajo = Disponible Fin [i] = false para i = 1,2,3, …, n. 2.Encontrar un i tal que: (a) Fin [i] = false (b) Necesidad i <= Trabajo Si no existe un i, ir al paso 4. 3.Trabajo = Trabajo + Asignación i Fin [i] = true ir al paso 2. 4.Si Fin [i] == true para todo i, entonces el sistema está en un estado seguro.

Algoritmo de Pedido de Recursos para el Proceso P i Solicitud = vector de recursos pedidos por el proceso P i. Si Solicitud i [j] = k entonces el proceso P i quiere k instancias del recurso R j. 1.Si Solicitud i <= Necesidad i ir al paso 2. Si no, levantar una condición de error, dado que el proceso exedió el número máximo de reserva. 2.Si Solicitud i <= Disponible, ir al paso 3. Si no P i debe esperar, dado que no hay recursos disponibles. 3.Intentar asignar los recursos pedidos a P i modificando los estados de la siguiente forma: Disponible = Disponible - Solicitud i Asignación i = Asignación i + Solicitud i Necesidad i = Necesidad i – Solicitud i Si es seguro => los recursos son asignados a P i. Si es inseguro => P i debe esperar, y el viejo estado de asignación de recursos es restablecido.

Ejemplo del Algoritmo del Banquero 5 procesos P 0 hasta P 4 ; 3 recursos de tipo A (10 instancias), B (5 instancias, y C (7 instancias). Foto en el instante T 0 : AsignaciónMaxDisponible A B C A B C A B C P P P P P

Ejemplo (Cont.)‏ El contenido de la matriz. Necesita es definido como Max – Asignados. Necesidad A B C P P P P P El sistema está en un estado seguro dado que la secuencia satisface el criterio de seguridad.

Ejemplo de P 1 Pidiendo (1,0,2) (Cont.)‏ Revisar que Requeridos true. AsignaciónNecesidad Disponible A B C A B C A B C P P P P P La ejecución del algoritmo de seguridad muestra que la secuencia satisface los requerimientos de seguridad. Se puede garantizar el pedido (3,3,0) de P 4 ? Se puede garantizar el pedido (0,2,0) de P 0 ?

Detección de Deadlock Permite a un sistema entrar en un estado de deadlock Algoritmo de detección Mecanismo de recuperación

Única instancia de Cada Tipo de Recurso Mantiene un grafo de espera  Los nodos son procesos.  P i → P j si P i está esperando por P j. Periódicamente se invoca un algoritmo que busca por un ciclo en el grafo. Un algoritmo para detectar un ciclo en un grafo tiene un orden de n 2 operaciones, donde n es el número de vértices del grafo.

Grafos de Asignación y Espera de Recursos Grafo de asignaciónGrafo de espera

Varias Instancias de un Tipo de Recurso Disponible: un vector de longitud m indica el número de recursos disponibles para cada tipo. Asignación: Una matriz de n x m define el número de recursos de cada tipo actualmente asignados a cada proceso. Solicitud: Una matriz de n x m indica el pedido actual de cada proceso. Si Solicitud [i j ] = k, entonces P i está pidiendo k instancias más de un recurso de tipo R j.

Algoritmo de Detección 1.Sean Trabajo y Fin dos vectores de longitud m y n, respectivamente. inicializar: (a)Trabajo = Disponible (b)Para i = 1,2, …, n, si Asignación i != 0, entonces Fin[i] = false; si no, Fin[i] = true. 2.Encontrar un índice i tal que: (a)Fin[i] == false (b)Solicitud i <= Trabajo Si no existe tal i, ir al paso 4.

Algoritmo de Detección (Cont.)‏ 3.Trabajo = Trabajo + Asignación i Fin[i] = true ir al paso 2. 4.Si Fin[i] == false, para algún i, 1 <= i <= n, entonces el sistema está en estado de deadlock. Aún más, si Finalizado[i] == false, entonces P i está en deadlock. El algoritmo requiere un orden de O(m x n 2 ) operaciones para detectar si el sistema está en estado de deadlock o no.

Ejemplo de Algoritmo de Detección 5 procesos P 0 hasta P 4 ; 3 recursos de tipo A (7 instancias), B (2 instancias), y C (6 instancias). Foto en el tiempo T 0 : Asignación SolicitudDisponibles A B C A B C A B C P P P P P La secuencia retorna Fin[i] = true para todo i.

Ejemplo (Cont.)‏ P 2 pide una instancia adicional de tipo C. Solicitud A B C P P P P P Estado del sistema?  Se pueden reclamar los recursos retenidos por P 0, pero son insuficientes para satisfacer los otros procesos.  Existe un deadlock, conformado por los procesos P 1, P 2, P 3, y P 4.

Uso del Algoritmo de Detección Cuando, y cuan seguido invocar depende de:  Cuan seguido es probable que suceda?  Cuantos procesos habrá que volver a atrás? Uno para cada ciclo disjunto Si el algoritmo de detección es invocado arbitrariamente, puede haber muchos ciclos en el grafo de recursos y no será posible decir cual de los muchos procesos bloqueados “causó” el deadlock.

Recuperación de Deadlocks: Terminación de Procesos Terminar todos los procesos bloqueados. Abortar un proceso a la vez hasta que se rompa el ciclo de deadlock. En que orden se deben elegir los procesos a terminar?  Prioridad de los procesos.  Cuanto tiempo ha computado, y cuanto más falta para terminar.  Cuantos recursos ha usado el proceso.  Resources process needs to complete.  Cuantos procesos tienen que ser terminados.  Es el proceso interactivo o batch?

Recuperación de Deadlocks: Expropiación de Recursos Seleccionar una víctima – minimizar el costo. Rollback – retornar a un estado seguro, reiniciar el proceso para ese estado. Inanición – el mismo proceso puede ser elegido siempre como víctima, incluir el número de rollback en el factor de costo.

Opción Combinada para el Manejo de Deadlocks Combina 3 opciones básicas  expropiación  evitación  detección permitiendo el uso de la opción óptima para cada recurso del sistema. Separa los recursos en clases ordenadas jerarquicamente. Usa la técnica más apropiada para manejar los deadlocks de cada clase.