SISTEMAS OPERATIVOS DEADLOCK ABRAZO MORTAL BLOQUEO MUTUO.

Slides:



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

GESTION DE PROCESOS Procesos y tareas
Administración de procesos Lic. Orlando Zamora Rdz.
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
Planificación de Monoprocesadores
I11 A y i 11 B Séptimo semestre.
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
3.4. Programación de operaciones en los servicios
Administración de procesos y del procesador.
Unidad 6 Interbloqueos (Dead Lock)
RESPALDO.
Contenido Introducción Tipos de recursos Modelo del sistema
Inter bloqueo DeadLock.
Windows XP sp3.
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
TRABAJO DE LUIS VIRACOCHA
Tema 1 – Adopción de pautas de seguridad informática
Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.
Administración del Procesador
Tema 6: Clases Antonio J. Sierra.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
STOP PARA COLABORADORES
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á.
Deadlocks Abrazo Mortal Bloqueos mutuos
Unidad 4 Interbloqueos (Dead Lock)
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Una Carencia de Punto muerto de Causas de Sincronización de Proceso El punto muerto (" terriblemente el abrazo ") - un enredo por todo el sistema de recurso.
Importancia de las aplicaciones de estadística en el control de procesos Guatemala 2010.
Profesor: Rodrigo Sanhueza Figueroa
INSTITUTO TECNOLOGICO SUPERIOR DE TAMAZUNCHALE INTEGRANTES: MAXIMO HERNANDEZ BAUTISTA CLAUDIA JIMENEZ PROCOPIO ANA LUZ RODRIGUEZ JONGUITUD LEONEL AQUINO.
(Organización y Manejo de Archivos)
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.
EL SISTEMA OPERATIVO.
Características de un sistema operativo
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
LENGUAJES DE PROGRAMACIÓN
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
Planificación. Visión General El planificador del SO se construye a partir de un mecanismo para la conmutación de contexto y una política que determina.
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Administrador de procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO
Teoría de Sistemas Operativos Sincronización Procesos
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
PLAN DE CONTINGENCIA. EVALUACIÓN DIAGNOSTICA 1. Sabes para que te puede ayudar el respaldar la información? 2. Conoces algún método para realizar un respaldo,
Funciones principales!
Las funciones son librerías ya estandarizadas que permiten al usuario realizar sus respectivas programaciones. Una función es un conjunto de líneas de.
TIPOS DE SISTEMAS OPERATIVOS.  Que es un sistema operativo??  Es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar,
INTEGRANTES: JUAREZ VILLEGAS REFUGIO ARIAS GARDUZA YOHANA LOPEZ BERMUDEZ EVER CATEDRÁTICO: ZINATH TEMA: UNIDAD III INSTITUTO TECNOLÓGICO DE VILLAHERMOSA.
Procesos de Planeación
SOFTWARE DE COMPUTADORAS
Administrador Chilecompra Administrador Comprador en
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
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.
Transcripción de la presentación:

SISTEMAS OPERATIVOS DEADLOCK ABRAZO MORTAL BLOQUEO MUTUO

RECURSOS Un sistema se compone de un número finito de recursos que se distribuyen entre varios procesos que compiten por ellos: Ciclos de CPU, Espacio de Memoria, Archivos, Dispositivos. Un proceso debe solicitar un recurso antes de usarlo y liberarlo al terminar su uso. En el modo de operación normal, un proceso sólo puede utilizar un recurso en la secuencia siguiente: - Solicitud. - Utilización. - Liberación.

DEADLOCK (BLOQUEO MUTUO, ABRAZO MORTAL) Un conjunto de procesos se encuentra en estado de bloqueo mutuo, cuando cada uno de ellos espera un suceso que sólo puede originar otro proceso del mismo conjunto. Los sucesos tienen que ver con la adquisición y liberación de los recursos. Estos recursos pueden ser físicos (Impresoras,unidades de cinta, espacios en memoria, ciclos de CPU, etc.) o lógicos (archivos, semáforos, monitores, etc). En los bloqueos mutuos, pueden involucrarse uno o varios tipos de recursos.

CONDICIONES NECESARIAS PARA QUE OCURRA UN DEADLOCK EXCLUSIÓN MUTUA: Los procesos exigen un control exclusivo de los recursos que necesitan. RETENCIÓN Y ESPERA: Los procesos mantienen la posesión de los recursos ya asignados a ellos mientras esperan por recursos adicionales retenidos por otros procesos. NO APROPIACIÓN: Un recurso sólo puede ser liberado volunta- riamente por el proceso que lo retiene, después que haya cumplido su tarea. ESPERA CIRCULAR: Debe existir un conjunto de procesos (p0,p1,...,pn) en espera, tales que p0 espera un recurso retenido por p1, p1 espera un recurso retenido por p2 y así sucesivamente hasta que pn espera un recurso retenido por p0.

GRAFICA DE ASIGNACIÓN Y PETICIÓN DE RECURSOS P1 pide un recurso de tipo R1. (A) R2 P2 Un recurso de tipo R2 a sido asignado al proceso p2. (B)

GRAFICA DE ASIGNACION Y PETICION DE RECURSOS El proceso P3 pide el recurso R3, el cual ha sido asignado al proceso P4. (D)

UN BLOQUEO MUTUO Este sistema está bloqueado porque cada proceso tiene El proceso B pide el recurso 1. El recurso 1 está asignado al proceso A. Recurso 1 PROCESO B PROCESO A El recurso 2 está asignado al proceso B. El proceso A pide el recurso 2. Recurso 2 Este sistema está bloqueado porque cada proceso tiene un recurso solicitado por el otro proceso y ninguno de ellos está dispuesto a liberar el recurso que tiene.

METODOS PARA MANEJAR EL BLOQUEO MUTUO PREVENIR: Ajustar todo el sistema para ELIMINAR TODA POSIBILIDAD que ocurra un deadlock. EVITAR: Se PERMITE la posibilidad del bloqueo mutuo, pero se ESQUIVA cuando está a punto de suceder. DETECTAR: DETERMINAR SI HA OCURRIDO un bloqueo mutuo y saber exactamente cuáles son los procesos y los recursos involucrados en él. RECUPERAR: ELIMINAR el bloqueo mutuo de un sistema para que pueda seguir trabajando y para que los procesos implicados puedan terminar su ejecución y liberen los recursos utilizados.

PREVENCIÓN DEL BLOQUEO MUTUO Conjunto de estrategias desarrolladas por Havender: 1- Cada proceso deberá pedir TODOS sus recursos al mismo tiempo y no podrá seguir la ejecucion hasta haberlos recibido por completo. NEGACIÓN DE LA CONDICIÓN DE RETENCIÓN Y ESPERA. RETENCIÓN Y ESPERA: Los procesos mantienen la posesión de los recursos ya asignados a ellos mientras esperan por recursos adicionales retenidos por otros procesos.

PREVENCIÓN DEL BLOQUEO MUTUO 2- Si a un proceso que tiene ciertos recursos se le NIEGAN los demás, ese proceso deberá LIBERAR sus recursos, y en caso necesario pedir- los de nuevo conjuntamente con los recursos adicionales. NEGACIÓN DE LA CONDICIÓN DE NO APROPIACION NO APROPIACIÓN: Un recurso sólo puede ser liberado voluntaria- mente por el proceso que lo retiene, después que haya cumplido su tarea.

PREVENCIÓN DEL BLOQUEO MUTUO 3- Si a un proceso le han asignado recursos de un tipo especifico, en lo sucesivo sólo podra pedir aquellos recursos que sigan un determinado ORDEN. Este ordenamiento esta realizado en forma LINEAL. NEGACIÓN DE LA CONDICIÓN DE ESPERA CIRCULAR. ESPERA CIRCULAR: Debe existir un conjunto de procesos (p0,p1,..., pn)en espera, tales que p0 espera un recurso retenido por p1, p1 espera un recurso retenido por p2 y así sucesivamente hasta que pn espera un recurso retenido por p0.

ORDENAMIENTO LINEAL DE HAVENDER PARA PREVENIR EL BLOQUEO MUTUO El proceso P1 tiene los recursos R3, R4, R6 y R7, y pide el recurso R8. No puede haber espera circular porque todas las flechas deben apuntar hacia arriba. P3 P2 R9 R8 P1 R7 P1 P1 P1 P2 R6 R5 R4 R3 R2 R1 P2

PREVENCIÓN DEL BLOQUEO MUTUO 4- La condición de EXCLUSION MUTUA debe conservarse para aquellos recursos que por naturaleza propia o función no pueden com-partirse. HAVENDER NO ESTABLECE ESTRATEGIAS PARA ESTE CASO.

EVITAR EL BLOQUEO MUTUO Si se presentan las condiciones necesarias para un bloqueo mutuo, todavía es posible evitarlo mediante una cuidadosa asignación de recursos. ALGORITMO DEL BANQUERO.

EVITAR EL BLOQUEO MUTUO ALGORITMO DEL BANQUERO. (Condiciones Iniciales) 1- El sistema operativo administra un número fijo de unidades por recurso entre un número fijo de usuarios. 2- Cada usuario especifica por adelantado el número máximo de unidades de los recursos que necesitará durante la ejecución de los trabajos. 3- El sistema operativo aceptará la petición de un usuario si la necesidad máxima de ese usuario no es mayor al número fijo de unidades del recurso. 4- Un usuario puede obtener o liberar unidades del recurso una a una. Los recursos asignados no podrán ser mayores a las necesidades máximas declaradas por dicho usuario.

EVITAR EL BLOQUEO MUTUO 5- Si el sistema operativo es capaz de satisfacer la necesidad máxima del usuario, entonces este proceso debe garantizar al sistema operativo que las unidades del recurso serán utilizadas y liberadas en un tiempo finito. 6- Uso de los términos: “SISTEMA EN ESTADO SEGURO" y “SISTEMA EN ESTADO INSEGURO".

EVITAR EL BLOQUEO MUTUO Se dice que el sistema se encuentra en estado SEGURO, si el sistema operativo puede permitir que todos los procesos actuales terminen sus trabajos en un tiempo finito. En otro caso, el estado del sistema es INSEGURO. Ejemplo: Préstamo Necesidad Procesos Actual Máxima Usuario 1 1 4 Usuario 2 4 6 Usuario 3 5 8 Unidades disponibles:2 La clave para que un sistema sea seguro es que exista al menos una forma adecuada de que terminen todos los procesos.

EVITAR EL BLOQUEO MUTUO Ejemplo: Préstamo Necesidad Procesos Actual Máxima Usuario 1 8 10 Usuario 2 2 5 Usuario 3 1 3 Unidades disponibles:1 Un sistema inseguro indica que alguna secuencia desafortunada en la asignación de recursos podria llevar al bloqueo mutuo.

ESTRUCTURAS DE DATOS PARA EL ALGORITMO n: número de procesos, m:tipos de recursos Disponible:Un vector de longitud m que indica el número de recursos disponibles de cada tipo. Si Disponible[j]=k, entonces hay k ejemplares disponibles del tipo de recurso Rj. Máx. Una matriz de n*m que define la demanda máxima de cada proceso por cada clase de recurso. Si máx[i,j]=k, entonces el proceso Pi puede solicitar como máximo k ejemplares del tipo de recurso Rj. Asignación: Una matriz de n*m que define el número de recursos de cada tipo asignados en ese momento a cada proceso. Si asignación[i,j]=k, entonces el proceso pi tiene actualmente asignados k ejemplares del tipo de recurso Rj. Necesidad:Una matriz de n*m que indica los recursos que le hacen falta a cada proceso. Si necesidad[i,j]=k, entonces el proceso pi puede necesitar k ejemplares más del tipo de recurso Rj para completar su tarea. Observe que Necesidad[i,j]=Máx[i,j]-Asignacion[i,j].

IMPLEMENTACION DEL ALGORITMO DEL BANQUERO Sea Solicitudi el vector de solicitudes para el proceso Pi. Si Solicitudi[j]=k, entonces el proceso Pi quiere k ejemplares del tipo de recurso Rj. Cuando el proceso Pi efectúa una solicitud de recursos, se emprenden las siguientes acciones: 1- Si solicitudi<=Necesidadi , continuar en el paso 2. De lo contrario, presentar una condición de error, ya que el proceso se ha excedido de su demanda máxima. 2- Si Solicitudi<=Disponiblei , continuar en el paso 3. De lo contrario, Pi deberá esperar, pues los recursos no están disponibles. 3- El sistema simula haber asignado todos los recursos solicitados al proceso pi modificando el estado de la manera siguiente: Disponible:Disponible-Solicitudi; Asignacioni:=Asignacion+Solicitudi; Necesidadi:=Necesidad-Solicitudi;

IMPLEMENTACION DEL ALGORITMO DEL BANQUERO Si el estado de asignación de recursos resultante es seguro, entonces se efectúa la transacción y los recursos se asignan al proceso pi. Sin embargo, si el nuevo estado no es seguro, entonces Pi, deberá esperar a que se sirva Solicitudi y se restablece el anterior estado de asignación de recursos.

ALGORITMO PARA DETERMINAR EL ESTADO DE UN SISTEMA 1- Sean Trabajo y Fin vectores de longitud m y n, respectivamente. Asígnese Trabajo:=Disponible y Fin[i]:=falso para toda i=1,2,...,n. 2- Encontrar una i tal que se cumplan ambas proposiciones: a) Fin[i]=falso b) Necesidadi<=Trabajo. Si no existe tal i, continuar en el paso 4. 3- Trabajo:=Trabajo+Asignacióni Fin[i]:=verdadero Continuar en el paso 2. 4- Si Fin[i]=verdadero para toda i, entonces el sistema está en un estado seguro.

DETECCIÓN DE BLOQUEO MUTUO Si un sistema no emplea un algoritmo de prevención o evitación de bloqueo mutuo, entonces deberá: Determinar si ha ocurrido un bloqueo mutuo. Recuperarse del bloqueo mutuo. Esto requiere tiempo de procesamiento adicional e involucra pérdidas potenciales de procesos y recursos.

ALGORITMO DE DETECCIÓN Disponible. Un vector de longitud m que indica el número de recursos disponibles de cada tipo. Asignación: Una matriz de n*m que define el número de recursos de cada tipo actualmente asignados a cada proceso. Solicitud: Una matriz de n*m que indica la solicitud actual de cada proceso. Si solicitud[i,j] = k, entonces el proceso pi solicita k ejemplares más del tipo Rj.

ALGORITMO DE DETECCIÓN ACCIONES: 1.Sean Trabajo y fin vectores de longitud m y n respectivamente. Asignar Trabajo:=disponible Para i=1,2,...,n, si asignacióni <> 0, entonces Fin[i]=falso; de lo contrario, Fin[i]=verdadero. 2.Encontrar un índice i tal que se cumplan ambas proposiciones: a) Fin[i]=falso b) Solicitudi<=Trabajo. Si no existe tal i, continuar en el paso 4. 3.Trabajo:=Trabajo+Asignacióni Fin[i]:=verdadero continuar en el paso 2 4.Si Fin[i]=Falso, para una i, 1<=i<=n, entonces el sistema está en un estado de bloqueo mutuo. Es más, si Fin[i]=falso, entonces el proceso pi está en bloqueo mutuo.

RECUPERACIÓN DESPUÉS DE UN DEADLOCK Permitir al sistema operativo recuperarse después de la ocurrencia de un deadlock, sin intervención directa del operador. Alternativas: i) Abortar uno o más procesos. ii) Arrebatar recursos a uno o más procesos que se encuentran en deadlock. ABORTAR MÉTODOS: i) Abortar todos los procesos en deadlock: * Costo alto. * Pérdida total del trabajo realizado. ii) Abortar un proceso a la vez, hasta que el deadlock haya sido eliminado: * Overhead (Sobretiempo). * Algoritmo de detección.

RECUPERACIÓN DESPUÉS DE UN DEADLOCK FACTORES PARA LA ESCOGENCIA DEL PROCESO. 1- Prioridad de los procesos. 2-Cuánto tiempo se ha ejecutado el proceso y cuánto tiempo necesita para culminar su actividad. 3-Cuántos y qué tipos de recursos ha usado el proceso. 4-Cuántos recursos más necesita el proceso para culminar. 5-Cuántos procesos necesitan ser terminados. 6-Si el proceso es interactivo o en lotes.

ARREBATAR RECURSOS Quitar recursos a los procesos en forma sucesiva y otorgar éstos recursos a otros procesos. Aspectos a considerar: 1- SELECCIÓN DE UN PROCESO “VICTIMA". Determinar a cuáles procesos y cuáles recursos les serán arrebatados. Parámetros: * Número. de recursos que tiene asignado un procesos en deadlock. * Cantidad de tiempo consumida por el proceso en su ejecución.

ARREBATAR RECURSOS 3. STARVATION (APLAZAMIENTO INDEFINIDO): 2- ROLLBACK: Una vez que un proceso le han sido quitados los recursos, se puede regresar el proceso a algún estado seguro y restaurarlo desde ese momento. Requiere que el sistema mantenga mayor cantidad de información acerca del estado de todos los procesos en ejecución. 3. STARVATION (APLAZAMIENTO INDEFINIDO): Garantizar que los recursos no siempre sean arrebatados a los mismos procesos “Víctimas“, ya que ésto aplazaría su culminación.