Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.

Slides:



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

Almacenamiento del sistema de archivos La gestión de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar.
2. Manejo de memoria Manejo de memoria estática
TEMA 1 Introducción a la Programación Concurrente
Cretamen 2 Sistemas Operativos Universidad Viña del Mar 8/10/2001 Nombre:_______________________ Tiempo 100 minutos. Lea todas las preguntas. Conteste.
Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Planificación de Monoprocesadores
I11 A y i 11 B Séptimo semestre.
Cuartó parcial 7A 7B.
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
EL PLAN DE TRABAJO: MÁS ALLÁ DE LOS CRONOGRAMAS Y LOS PRESUPUESTOS
Introducción a los Algoritmos
Grupo 4 Matías Melgar Pablo Carbonell
El Diseño de Algoritmos Paralelos
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Unidad 6 Interbloqueos (Dead Lock)
TRABAJO DE SISTEMAS OPERATIVOS
Contenido Introducción Tipos de recursos Modelo del sistema
Implementación de archivos
Inter bloqueo DeadLock.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Concurrencia: Deadlock e Inhanición
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
HILOS Y COMUNICACIÓN ENTRE PROCESOS
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.
Unidad III Administración de procesos
Planificación de procesos
Profesor: Rodrigo Sanhueza Figueroa
Diseño y análisis de algoritmos
Administración de Memoria Memoria Virtual
INSTITUTO TECNOLOGICO SUPERIOR DE TAMAZUNCHALE INTEGRANTES: MAXIMO HERNANDEZ BAUTISTA CLAUDIA JIMENEZ PROCOPIO ANA LUZ RODRIGUEZ JONGUITUD LEONEL AQUINO.
Soporte HW para Administración de Memoria Cecilia Hernández
Sebastián Sánchez Prieto
Planificación de Procesos
Planificación y Gestión de procesos
1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Capítulo 7 Gestión de memoria.
Gestión de procesos Sistemas Operativos Edwin Morales
1 Algoritmos Avaros (Greedy Algorithms) Agustín J. González ELO-320: Estructura de Datos y Algoritmos 1er. Sem
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.
Sincronización de Procesos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Administrador de procesos
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
comenzar Listo Ejecutando Terminado Bloqueado Un proceso ejecuta y solo abandona el control de la CPU cuando lanza E/S o termina. La cola de listos se.
Guido Tapia B.. La cola de listos se reparten en colas separadas: procesos de primer plano (interactivos) procesos de segundo plano (batch)‏ Cada cola.
Laboratorio Informática II
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.
INTERRUPCIONES – ABRAZO MORTAL
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
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.
Procesos de Planeación
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.
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.
Sistemas Operativos Tema 9: Interbloqueo.
Ciclos condicionales y exactos Estructura de control de ciclos
DEADLOCKS Arquitectura y Sistemas Operativos
Transcripción de la presentación:

Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08

Conceptos Bloqueo permanente de un grupo de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. Un sistema consiste en un número finito de recursos que será distribuidos entre los procesos dentro del sistema. Ejemplos Recursos: CPU, memoria, disco, etc.

Ejemplo Un programa A quiere copiar desde el disco 1 al disco 2 y toma el control sobre disco 1. Un programa B quiere copiar desde el disco 2 al disco 1 y toma el control sobre disco 2. El programa A debe esperar hasta que el programa B libere el disco 2. El programa B debe esperar hasta que el programa A libere disco 1. Ambos programas deberán espera para siempre.

Modelo del sistema Tipos de recursos: R1,R2,….,Rn –ciclos de CPU, espacio de memoria, E/S Cada Recurso R i posee W i instancias. Cada proceso usa los recursos –solicita o hace un requerimiento –los usa –los libera (al final)‏

Modelo del Sistema El uso de los recursos solo puede ser hecho por medio de llamadas al sistema (System Calls)‏ Ejemplo Open/close para archivos malloc/free para memoria request/release para dispositivos (waits y signal)‏ Existe deadlock cuando cada proceso en el conjunto está esperando por un evento que sólo puede ser causado por otro proceso en el conjunto.

Caracterización Condiciones necesarias para que deadlock ocurre: – Exclusión Mutua: solo un proceso a la vez puede usar el recurso. –Hold and wait: un proceso tiene al menos un recurso y espera que le asignen otros. –No Preemption: recursos solo puede ser liberado voluntariamente, por el proceso que lo tiene. –Espera circular: dos o mas procesos esperan por recursos tenidos por otros procesos. p1 espera por p2, p2 espera por p3, y pn espera por p1.

Caracterización DEADLOCK las 4 condiciones ocurren

Grafo de recursos G = (V,E) dirigido V dividido en dos tipos –P : conjunto de procesos en el sistema –R : conjunto de recursos en el sistema. Lados de requerimientos: arcos dirigidos P i -->R j Lados de asignación: arcos dirigidos R j -->P i

Grafo de Recursos P1P2P3 R1 R3 R2 R4

Ejemplo P1P2 P3 R2 P4 R1

Grafo Si el grafo NO contiene ciclos ==> NO deadlock Si el grafo contiene ciclos ==> –Deadlock si hay una instancia por recurso –Posibilidad de deadlock si muchas instancias por tipo de recursos. Un ciclo es condición necesaria pero no suficiente.

Ejemplo P1P2P3 R1 R3 R2 R4 DEADLOCKDEADLOCK

Métodos para Manejar Deadlock Asegurar que el sistema nunca entra en estado de deadlock. –Prevención –Predicción Permitir que el sistema entre al estado de deadlock y luego recuperarlo. Ignorar el problema y pretender que no va a ocurrir. (Sol. De muchos sistemas como UNIX. El sistema se va degradando y tiene que intervenir el administrador. Es un enfoque aceptable.

Prevención Método: trata de garantizar que alguna de las 4 condiciones no ocurra. –M.E. No es posible prevenir por negación de la exclusión mutua, ya que existe recursos intrínsicamente no compartibles. Ej printer –H.and W. Se debe garantizar que siempre que un proceso solicite un recurso, el no tiene otro. Protocolo 1: se le asignan a los procesos TODOS los recursos antes de comenzar. Protocolo 2: Un proceso solo puede solicitar recursos cuando no tiene ninguno. Baja utiliz. de recursos, starvation

Prevención No preemption: Si un proceso solicita recursos que NO pueden ser asignados inmediatamente, entonces todos los recursos que el tiene asignado son liberados. Los recursos quitados son sumados a la lista de recursos por la cual el proceso espera. El proceso continua cuando le sean devueltos los recursos quitados, mas los nuevos. Circular Wait: Se impone un orden total de todos los tipos de recursos y que los procesos hagan sus requerimientos en orden creciente de enumeración

Predicción Se le da a los procesos los recursos siempre que sea posible. Se requiere toda la información acerca de los request y release. Con esta información se decide si el proceso debe esperar o no. Información requerida –Recursos disponibles –Recursos asignados a cada proceso –Liberaciones y futuras solicitudes de recursos.

Predicción Un algoritmo que evita deadlock examina dinámicamente el estado de los recursos asignados para asegurar que nunca puede haber un condición de espera circular. El estado de asignación de recursos es definido por –el número de recursos disponibles y asignados – la demanda máxima de los procesos.

Estado seguro Cuando un proceso solicita recursos, el sistema debe decidir si la inmediata asignación deja al sistema en estado seguro. Un sistema está en estado seguro, si existe una secuencia segura de todos los procesos. La secuencia es segura si para cada P i, los recursos que P i aun necesita pueden ser satisfechos por los recursos disponibles + los que libere P j para todo j < I.

Estado seguro Si los recursos que P i necesita no est'an disponibles inmediatamente, entonces P i puede esperar hasta que P j haya finalizado. Cuando P j finaliza, P i puede obtener los recursos, se ejecuta y devuelve los recursos asignados. Cuando P i termina, P i+1 puede obtener los recursos que el necesita.

Hechos básicos Si un sistema está en estado seguro ==> NO deadlock Si un sistema está en estado inseguro ==> existe posibilidad de deadlock. Predicción ==> asegurar que el sistema nunca entre en estado inseguro.

Abolir Deadlock  System grants resources only if it is safe  basic assumption: maximal request per process is known  Example: 2 processes and 2 devices (Printer & Plotter)‏

Estado Seguro e Inseguro  Safe stated: Not deadlocked There is a way to satisfy all possible future requests

Algoritmo del Banquero Cada proceso debe a priori declara el número máximo de recursos a usar. Cuando un proceso solicita recurso, el puede tener que esperar. Cuando a un proceso se le asignan todos los recursos, el debe devolverlos en una cantidad finita de tiempo.

Algoritmo del Banquero Sea n número de procesos; m número de tipos de recursos Available[m]. Si Available[j]=k, hay k instancia disponible del tipo de recurso R j Max[nxm]. Si Max[i,j]=k, entonces P i a lo mas debe requerir k instancias del recurso R j Allocation[nxm]. Si Allocation[i,j] =k, entonces P i tiene asignado k instancia del recurso R j. Need[nxm]. Si Need[i,j]=k, entonces Pi un necesita k instancia de R j para completar su tarea. –Need[i,j]= Max[i,j] - Allocation[i,j]

Algoritmo Seguro 1. Work[m]:= Available[m] ; Finish[i] :=false para i=1,….n Find an i such that both: Finish[i]=false Need i <= Work if no exists i, go to step 4 Work := Work + Allocation i Finisk[i] := true go to step 2 1. If Finish[i] = true for all i,then the system is in a safe state.

Algoritmo Banker’s If Request i <= Need i go to step 2. Caso contrario error el proceso excede su máximo de demanda. If Request i <= Available, go to step 3. Caso contrario, Pi debe espera. Los recursos no están disponibles. Intenta la asignacion –Available := Available - Request i –Allocation i := Allocation i + Request i –Need i:= Need i - Request i if safe => los recursos son asignados a Pi If unsafe => Pi debe esperar, se recupera el estado anterior

Ejemplo Banquero 5 procesos, 3 tipos de recursos tipo A 10 instancias tipo B 5 instancias y tipo C 7 instancias. Foto en el tiempo T0. Total-Recur: A=10, B=5, C=7 Allocation Max Available A B C A B C A B C P P P P P

Ejemplo Banker’s El contenido de la Matriz Need es Need A B C P P P P P El sistema esta en estado seguro puesto que la secuencia P1,P3,P4,P2,P0 es una secuencia segura.

Ejemplo Banker’s Supongamos que P1 requiere (1,0,2). Cheque que Request true Allocation Need Available A B C A B C A B C P P P P P Ejecutando el algoritmo se encuentra que P1,P3,P4,P0,P2 es una Secuencia segura

Detección de deadlock Permite que el sistema entre en deadlock Algoritmo de detección. Esquema de recuperación

Algoritmo de Detección Work y Finish vectores de long. m y n respectivamente. Work:= Available ; 1. For i=1,2,….n if Allocation i <> 0 then Finish[i] :=false else Finish[i] :=true 2. Find an index i such that both: (Finish[i] = false ) and ( Request i <= Work) if no such i exists, go to step 4 3. Work := Work + Allocation i Finisk[i] := true go to step 2 4. If Finish[i] = false for some i,then the system is in a deadlock.

Ejemplo deteccion 5 procesos, 3 tipos de recursos tipo A 7 instancias tipo B 2 instancias y tipo C 6 instancias. Foto en el tiempo T0 Allocation Request Available A B C A B C A B C P P P P P La secuencia P0,P2,P3,P1,P4 resulta con Finish[i]=true para todo i

Ejemplo Deteccion P2 requiere una instancia adicional del tipo C Request Available A B C P P P P P P0 puede liberar sus recursos, pero insuficientes para satisfacer los otros procesos. Deadlock existe, constituido por los procesos P1,P2,P3,P4

Recuperación del Deadlock Terminación de Procesos – Abortar todos los procesos que forman parte del deadlock. => costo elevado –Abortar un proceso a la vez hasta que el ciclo del deadlock sea eliminado. => overhead (se debe llamar muchas veces el algoritmo)‏ –El orden de elección del proceso a abortar – Prioridad de procesos –Que cantidad ha calculado el proceso y cuanto le falta para completar –recursos usados por el proceso –recursos que necesita para terminar –Procesos interactivo o batch –Numero de procesos que necesitan ser terminados

Recuperación del Deadlock Preemption –Le sacamos algunos recursos a los procesos que participan en el deadlock y se lo damos a otro a ver si le va bien. –Victima de costo mínimo –Rollback. Llevar al proceso a estado seguro, el proceso continua desde el estado seguro –starvation, algunos procesos son siempre elegidos como victimas.

Enfoque Combinado Combina los tres enfoque –prevención –predicción –detección permite el uso del enfoque optimo para cada clase de recursos en el sistema Partir los recursos en clases ordenadas jerarquicamente. Usar la técnica mas apropiada para manejar deadlock dentro de cada clase.