El problema del interbloqueo

Documentos relacionados
Tarea #2 Interbloqueo e Inanición.

Sistemas operativos. Tema 6: Interbloqueo ( (deadlock)

Acceso coordinado a recursos compartidos

Tema 6. Gestión de Interbloqueo

Unidad 1: Gestión de Procesos

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada

Interbloqueo. Concurrencia: Interbloqueo e Inanición

Sistemas operativos, 2ª edición

Tema 5 El Interbloqueo

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO

Sistemas operativos: una visión aplicada. Capítulo 6 Interbloqueos

Concurrencia. Paso de Mensajes Control de Recursos Deadlock

Concurrencia Condiciones de Carrera. Guillermo Román Díez

UNIDAD III BLOQUEOS IRREVERSIBLES (BI) Ing. Benito Sánchez Raya. Disponible en:

CAPITULO 6. Control de Concurrencia y Recuperación

Concurrencia de Procesos

Secciones críticas y exclusión mutua

seguridad y vivacidad/viveza

Interbloqueos. Tema 5. Sistemas Operativos I. Tema 5: Interbloqueos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Capítulo 16: Control de la concurrencia

Resumen Tema 5: Proceso de transacciones

PROGRAMACION CONCURRENTE. I.4. Patologías en programas concurrentes

Sistemas Operativos Tema 6. Concurrencia

Lección 6: Ejemplos de programación con semáforos

Diseño de algoritmos paralelos

Puebla, Pue a 4 de Junio del Programación Concurrente y Paralela

4.6.- Integridad: Control de concurrencia.

Sistemas Operativos (Parte 2)

Programación Concurrente : Docencia Práctica

Lección 10: Ejemplos de programación con semáforos

Unidad 1: Gestión de Procesos

Eventos e interrupciones

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Arquitectura de Computadoras

Sistemas Operativos II Junio 2006 Nombre:

Pruebas de Software. Agenda. Pruebas de Programas Los Niveles de Prueba Diseño de Casos de Prueba

SISTEMAS OPERATIVOS (Código: ) Septiembre 2018

Control de concurrencia en bases de datos relacionales

Teoría de Sistemas Operativos Sincronización Procesos

Asignaturas antecedentes y subsecuentes

Sistemas Operativos Scheduling de Procesos

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Concurrencia. Concurrencia

Control de Concurrencia. Carlos A. Olarte BDII

Pontificia Universidad Católica del Ecuador

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Especificando interacción con recursos compartidos

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA

Sistemas Operativos. Daniel Rúa Madrid

DATOS DE IDENTIFICACIÓN DEL CURSO

Programación de Multitareas utilizando Hilos

PRÁCTICAS DE LINUX. procesador. Objetivo Educacional. 2.1 Concepto de proceso. 2.2 Estados y transiciones de los procesos

Concurrencia. Primitivas IPC con bloqueo

COMPARTIR ES BUENO <3 UN ZINE PARA TI Y PARA MÍ

TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA

2.2 Nombres, Ligado y Ámbito

Sistemas Operativos ING. EN COMPUTACIÓN Tercer Examen Parcial

Conceptos de Planificación

Ejercicios resueltos de captura y gestión de errores en programación con pseudocódigo. (CU00246A)

Unidad 2: Gestión de Procesos

Carrera: ISC. ARM ISC. Erick Dalet Villanueva Mascort. ISC. Arturo Guerra Franco. Asignaturas Temas Asignaturas Temas Sistemas Operativos.

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Procesos concurrentes y problemas en la comunicación y la sincronización

Fundamentos de los Sistemas Operativos

PRÁCTICO 4. La evaluación de una expresión sólo debe esperar por la evaluación de sus subexpresiones.

Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales.

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

La cena de los filósofos.

Tema 1: Programación Multiproceso. Curso

UNIDAD TEMÁTICA: Un Entorno Gráfico (Illustrator)

Transcripción:

Programación Concurrente en Linux El problema del interbloqueo Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1

Contenido 1. Inanición e interbloqueo 2. Modelo del interbloqueo 3. Soluciones al interbloqueo 2

1. Inanición e interbloqueo 3

Inanición e interbloqueo El acceso a recursos compartidos no está libre de problemas: Inanición: un proceso/hilo espera indefinidamente para entrar a la sección crítica. Posible escenario: Algunas primitivas de sincronización pueden estar implementadas con criterios de prioridad para seleccionar el siguiente proceso a entrar en la sección crítica. Interbloqueo: es una situación de reciprocidad en el acceso a recursos múltiples. Un conjunto de procesos está interbloqueado cuando cada proceso está esperando por un recurso que está siendo usado por otro proceso del conjunto. Aunque las primitivas cumplan rigurosamente las propiedades del acceso exclusivo! 4

Interbloqueo Un escenario sencillo El siguiente código puede conducir a un interbloqueo entre P1 y P2 Proceso P1 Proceso P2...... bajar(r1);...... bajar(r2); bajar(r2); bajar(r1);...... subir(r2); subir(r1); subir(r1);...... subir(r2); 5

Interbloqueo Un escenario sencillo El siguiente código puede conducir a un interbloqueo entre P1 y P2: SC R1 Proceso P1 Proceso P2...... bajar(r1); bajar(r2);...... bajar(r2); SC R2 SC R1 bajar(r1);...... subir(r2); subir(r1); subir(r1); subir(r2);...... SC R2 6

Interbloqueo Otro escenario: recursos múltiples Un proceso/hilo necesita n unidades (bloques) de memoria: proceso_que_usa_memoria(int n) { for (i=0; i<n; i++) b[i]= dame_un_bloque(); // en exc. mutua // Se usan los bloques... for (i=0; i<n; i++) } liberar_bloque(b[i]); // en exc. mutua Supongamos la siguiente situación: Un proceso P va a usar M bloques Un proceso Q va a usar N bloques En el sistema quedan B bloques libres, tal que B<M+N 7

2. Modelo del interbloqueo 8

Modelo del interbloqueo Grafo de asignación de recursos a procesos Notación: P R El proceso P ha solicitado usar el recurso R P R El proceso P está usando el recurso R 9

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: R2 P1 P2 R1 10

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: P1: bajar(r1) Como está libre, lo usa P1 R2 P2 R1 11

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: P1 R2 P2 P2: bajar(r2) Como está libre, lo usa R1 12

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: R2 P1 P2 R1 El interbloqueo ya es inevitable 13

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: R2 P1 P2 R1 14

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: R2 P1 P2 R1 se forma un ciclo en el grafo de asignación 15

Modelo del interbloqueo El escenario sencillo anterior. Una posible secuencia: R2 P1 P2 R1 P1 y P2 están interbloqueados 16

Modelo del interbloqueo Otro ejemplo: R2 R3 P1 P2 P3 R1 R4 17

Modelo del interbloqueo Otro ejemplo: R2 R3 P1 P2 P3 R1 R4 Si P2 solicita R1 hay interbloqueo entre P1 y P2 18

Modelo del interbloqueo Otro ejemplo: R2 R3 P1 P2 P3 R1 R4 o si P3 solicita R1 hay interbloqueo entre P1, P2 y P3 19

Modelo del interbloqueo Otro ejemplo: R2 R3 P1 P2 P3 R1 R4 pero no lo habría si P3 solicita R4 20

Modelo del interbloqueo Otro ejemplo: R2 R3 P1 P2 P3 R1 R4 o si P3 solicita R1 una vez que P1 lo libere 21

3. Soluciones al interbloqueo 22

Soluciones al interbloqueo Dos enfoques: Políticas paliativas: El Algoritmo del Avestruz Detección y eliminación Políticas preventivas: Prevención de interbloqueos Predicción de interbloqueos 23

Soluciones al interbloqueo El Algoritmo del Avestruz No hacer nada se reinicia el ordenador cuando suceda. Esta solución resulta práctica si el ordenador no se usa para tareas crítica (p.ej., un PC doméstico o un móvil). Detección y eliminación Detectar cuando ocurra un interbloqueo Manteniendo un grafo de asignación o mediante otros indicios. Una vez detectado, tratar de eliminarlo Eliminando alguno de los procesos involucrados. 24

Soluciones al interbloqueo Mejor prevenir que curar Las políticas preventivas evitan los interbloqueos impidiendo las condiciones para que ocurran o, sin impedirlas, prediciendo la posibilidad de un interbloqueo para actuar en consecuencia. 25

Soluciones al interbloqueo Condiciones para el interbloqueo Un interbloqueo solo puede producirse si en el sistema se cumplen todas y cada una de las condiciones siguientes: 1. Exclusión mutua. En todo momento, cada recurso, o está asignado a un proceso, o está libre. 2. Retención y espera. Un proceso que está utilizando un recurso r i puede solicitar otro recurso r j antes de liberar r i. 3. No expulsión. Un proceso no puede ser forzado a liberar un recurso. 4. Espera circular. Existe un conjunto de procesos P D entre los que se define un círculo de espera por recursos que están siendo usados 26

Soluciones al interbloqueo Prevención de interbloqueos Si el sistema impide una sola de las condiciones para el interbloqueo, estos no se producirán! Impedir las Condiciones 1 y 3 resulta muy restrictivo o imposible. Impedir la Condición 2: Asignando recursos por conjuntos. Restringe la concurrencia. Impedir la Condición 4: Asignar recursos en un orden determinado: Si P está usando R i, puede solicitar R k solo si k>i 27

Soluciones al interbloqueo Prevención de interbloqueos No pueden producirse ciclos si los recursos se asignan en orden creciente! R2 R3 P1 P2 P3 R1 R4 28

Soluciones al interbloqueo Predicción de interbloqueos Se definen estados seguros e inseguros. Los estados inseguros son los que pueden conducir a interbloqueos y se evitan denegando el acceso a recursos libres. Se usa el Algoritmo del banquero Requiere un número fijo de procesos. Muy restrictivo y computacionalmente complejo. 29

Soluciones al interbloqueo El Algoritmo del Banquero Con dos procesos y dos recursos se puede representar en el plano. Objetivo: conseguir una trayectoria en la ejecución que haga que todos los procesos terminen. Fin P2 P2 R1 R2 X R1 R2 Fin P1 P1 X Estados imposibles: uso simultaneo de R1 Estados imposibles: uso simultaneo de R2 Estados inseguros: conducen a interbloqueo Estado de interbloqueo Ejemplo de trayectoria que conduce a interbloqueo 30