Bloqueos Mortales Cecilia Hernández 2007. Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá.

Slides:



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

GESTION DE PROCESOS.
Mecanismo de semáforos
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Administración de procesos y del procesador.
ESTADOS DE PROCESOS L.I. Ramiro Robles Villanueva.
CIRCULACIÓN PULMONAR Y GENERAL
Unidad 6 Interbloqueos (Dead Lock)
TRABAJO DE SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS UNIDAD 1..
UPV-EHU / ATC Arquitecturas Paralelas Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos.
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Deadlocks Caracterización de deadlock Métodos para manejar deadlock Prevenir, Predecir, detección Recuperación de deadlock Emely Arráiz Ene-Mar 08.
Concurrencia: interbloqueo e inanición
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 introduccion a las redes de Petri
Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso
Comunicación y sincronización entre procesos Realizado por Kepa Bengoetxea Kortazar
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Semáforos Cecilia Hernández
Unidad III Administración de procesos
Planificación de procesos
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
INSTITUTO TECNOLOGICO SUPERIOR DE TAMAZUNCHALE INTEGRANTES: MAXIMO HERNANDEZ BAUTISTA CLAUDIA JIMENEZ PROCOPIO ANA LUZ RODRIGUEZ JONGUITUD LEONEL AQUINO.
PROGRAMACION CONCURRENTE
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
Sebastián Sánchez Prieto
Planificación de Procesos
Planificación y Gestión de procesos
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Sincronización de Procesos
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
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Sistemas operativos de tiempo Real Alejandro Celery RTOS - Sistemas Embebidos FI-UBA1.
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
INFORMATICA III ESCUELA DE INGENIERIA ELECTRONICA DEPARTAMENTO DE SISTEMAS E INFORMATICA.
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Título de la presentación - Unidad Subtítulo de la presentación - Sección.
SISTEMAS OPERATIVOS DEADLOCK ABRAZO MORTAL BLOQUEO MUTUO.
ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO
Teoría de Sistemas Operativos Sincronización Procesos
Evaluación Preliminar Situación observada del uso de pizarrones - Contenidos de pizarrones Distribución no uniforme entre pizarrones Exceso de información.
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Ajustes de configuración de rendimiento (performance & tuning) E.I.
Estados de procesos El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Transiciones.
Cálculo diferencial (Arq)
Threads en Java  Threads: programas multitarea  Creación de threads  Ciclo de vida de un thread  Sincronización.
PROCESOS PROCESOS, HILOS, COMUNICACIÓN ENTRE PROCESOS Y PLANIFICACIÒN
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.
REGLAS DE PROBABILIDAD
INTERRUPCIONES – ABRAZO MORTAL
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
Desarrollador Profesional de Juegos Programación III Unidad II introducción a Mutex Secciones críticas.
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.
PROCESO CONCURRENCIA SINCRONIZACION EXCLUSION MUTUA INTERBLOQUE O.
El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran.
SISTEMAS OPERATIVOS Sección Crítica.
Exclusión mutua de secciones
Exclusión mutua Un Algoritmo Centralizado Algoritmo Descentralizado
Sistemas Operativos Semáforos II.
COORDINACIÓN Y SINCRONIZACIÓN DE PROCESOS: 1.1. Concurrencia 1.2. Semáforos 1.3. Sección Critica 1.4. Bloqueos.
Dalireinis Hernández. Video.
Transcripción de la presentación:

Bloqueos Mortales Cecilia Hernández 2007

Bloqueos Mortales Definición Un proceso/hebra esta bloqueada cuando esta esperando por un evento que nunca ocurrirá Un proceso/hebra que esta en sección critica 1 espera por entrar a sección critica 2, mientras otro proceso/hebra esta en sección critica 2 y quiere entrar a sección critica 1

Condiciones bajo las cuales se produce bloqueo mortal Exclusión mutua: Sólo un proceso a la vez puede usar el recurso No apropiación: Sistema no puede quitar arbitrariamente recurso a proceso Retención y espera: Existen procesos que poseen recursos y esperan por otros recursos sin liberar los que tienen Espera circular: Existe un conjunto de procesos { P0, P1, …, Pn) tales que Pi está esperando por un recurso retenido por Pi+1 para 0<= i<= n, y Pn está esperando recurso que posee P0

Grafo de recursos P1 P2 R1 R2 Proceso tiene Recurso Proceso espera Recurso Bloqueo Mortal ocurre cuando hay un ciclo cerrado en el grafo de recursos como se muestra arriba

Grafo de recursos sin ciclo cerrado P1 P2 P3 R1 R2 R3 R4 Hay bloqueo mortal en este grafo?

Grafo de recursos 1 P1 P2 P3 R1 R2 R3 Hay bloqueo mortal en este grafo de recursos?

Grafo de recursos 2 P1 P2 R1 R2 P3 P4 Grafo de recursos con ciclo. Hay bloqueo mortal? Por que?

Usando semáforos Hay bloqueo mortal al invertir operaciones wait sobre semáforos en el consumer? Cuando ocurre? Productor while (true) { /* produce un item en proxProd */ wait(mutex); wait(vacio); buffer[in] = proxProd; in = (in + 1) % N; contador++; signal(mutex); signal(lleno); } Consumidor While(true){ wait(lleno); wait(mutex); proxCons = buffer[out]; out = (out + 1) % N; contador--; signal(mutex); signal(vacio); /* consume proxCons */ } int contador = 0; //indica número de items en buffer char buffer[N]; int in = 0; int out = 0; sem mutex=1; sem vacio = N; sem lleno = 0;

Como enfrentar bloqueos mortales? Prevención: No permitir que bloqueo mortal ocurra Proceso/Hebra adquiera todos los recursos a ocupar al inicio Problemas? Numerar recursos y procesos/hebras los adquieren en secuencia (implica que pueden obtener algunos antes que los necesiten) Por que funciona? Problemas? Detección y corrección Periódicamente revisar si hay ciclos y eliminarlos

Caso de Filósofos Comensales Problema de Filósofos comensales Cada filósofo tiene su plato de arroz, con 5 palitos 5 filósofos se sientan a la mesa. Piensan por un rato y cuando les da hambre comen Hay sólo 5 palitos en la mesa (cada persona necesita 2 palitos para comer arroz a la manera china) Para poder comer cada filósofo tiene que obligatoriamente conseguir dos palitos Problema es importante porque introduce posibles problemas de Deadlock(bloqueo mortal) y Starvation(inanición) Animación disponible en :

Ilustración

Posible solución usando semáforos Problemas Produce deadlock Si todos simultaneamente toman palito izquierdo, no pueden tomar el palito derecho pues ya esta tomado por su vecino Posibles soluciones Solo 4 filósofos puedan comer a la vez Uno de los filósofos toma primero el tenedor derecho y luego el izquierdo Permitir que un filósofo tome sus tenedores sólo si ambos están disponibles (y hacerlo dentro de sección crítica) Nota: cuando se evita bloqueo tambien se tiene que tener en cuenta que exista condicion en la cual algun filósofo de muera de hambre semaforo palito[5]; do { … pensar(); … wait(palito[i]); wait(palito[(i+1)%5]; …. comer(); … signal(palito[i]); signal(palito[(i+1)%5]); } while(1);