Sistemas operativos, 2ª edición

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

Unidad 1: Gestión de Procesos

Tema 6. Gestión de Interbloqueo

Tema 5 El Interbloqueo

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

Sistemas operativos. Tema 6: Interbloqueo ( (deadlock)

Tema 3: Planificación de recursos

El problema del interbloqueo

Planificación y Gestión de procesos

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

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

Sistemas Operativos ING. EN COMPUTACIÓN Tercer Examen Parcial

Interbloqueo. Concurrencia: Interbloqueo e Inanición

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U INTERBLOQUEO DE PROCESOS

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

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

ABRAZO MORTAL - DEADLOCK - INTERBLOQUEO

Tarea #2 Interbloqueo e Inanición.

Concurrencia. Paso de Mensajes Control de Recursos Deadlock

ISO Tema 8,

Capítulo 16: Control de la concurrencia

CAPITULO 6. Control de Concurrencia y Recuperación

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009

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

Sistemas Operativos (Parte 2)

Concurrencia. Guillermo Román Díez

Teoría de Sistemas Operativos Sincronización Procesos

Tema 6: Gestión de la Entrada/Salida

Acceso coordinado a recursos compartidos

Tema 6: Gestión de la Entrada/Salida

Nombre de la materia Sistemas Operativos Departamento Ciencias Aplicadas de la Información Academia Arquitecturas de Cómputo

Sincronización entre procesos (aka: semáforos)

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

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

SISTEMAS OPERATIVOS PROBLEMAS RESUELTOS. Jorge Walter Orellana Araoz

SISTEMAS OPERATIVOS (Código: ) Septiembre 2018

Sistemas Operativos Problemas frecuentes con el lenguaje C

4.6.- Integridad: Control de concurrencia.

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).

La cena de los filósofos.

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1

Resumen Tema 5: Proceso de transacciones

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

Tema 4: Gestión de Procesos

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos

Índice. Entorno de prácticas. Hardware virtual. Práctica 1 Minikernel. Diseño de sistemas operativos. Fernando Pérez Costoya

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

seguridad y vivacidad/viveza

Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo

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

Tema 4- Representación Enlazada

Control de Concurrencia. Carlos A. Olarte BDII

Concurrencia de Procesos

Sistemas Operativos. 7 Deadlocks. Prof. Javier Cañas R.

Planificación con prioridades

UNIDAD 7: PROGRAMACIÓN EN R

Transacciones, Recuperación y Control de Concurrencia

INFORMATICA II PRIMER PARCIAL

Introducción a los Sistemas Operativos S.O.

ASIGNATURA: (TIS-106) Estructuras de Datos II DOCENTE: Ing. Freddy Melgar Algarañaz TEMA 4. Montículos binarios (heaps)

GUÍA DE ESTUDIO SISTEMAS OPERATIVOS

FACULTAD DE INGENIERÍA ÁREA DE COMPUTACIÓN E INFORMÁTICA

Tema 2: Lenguajes de Programación de Sistemas: C

Sistemas operativos, 2ª edición

Sistemas Operativos II Junio 2006 Nombre:

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

Capítulo IV. INTERBLOQUEO E INANICIÓN

Sistemas Operativos II Febrero 2007 Nombre:

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

GESTION DE LA MEMORIA

Contenido. Qué es el interbloqueo? Cómo prevenirlo? Cómo evitarlo? Cómo detectarlo? Interbloqueo. Cruce en un Puente. Qué es?

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

Procesadores de lenguaje Tema 5 Comprobación de tipos

Estructuras de datos: Árboles binarios de

Búsqueda en espacio de estados

Segundo Parcial de Programación 2 7 de junio de 2017

Procesos Definición y Estados

Clase Práctica Administración de Memoria en C. Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur

ANEXO XVII DE LA RESOLUCION N

Diseño de algoritmos

Convivencia Gestión de Procesos

Sería muy difícil para el usuario y su aplicación dominar todos los elementos a nivel de hardware y direcciones máquina.

Introducción. Requerimientos

Multiplicación de matrices simétricas

1. Sistema Operativo Unix

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano

Tema 5: Gestión de la Memoria Principal

Departamento de Arquitectura Sistemas Operativos PRÁCTICO 6

Lenguaje de Diseño: Estructuración de Datos

Estructura de datos Colas

SOLUCIONES. DURACIÓN: Dispones de dos horas para realizar el examen. Lee las instrucciones para el test en la hoja correspondiente.

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Algoritmos y estructuras de datos

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERIA EAP INGENIERIA INFORMATICA

Scheduling. Area de Ingeniería Telemática Grado en Ingeniería en Tecnologías de Telecomunicación, 3º

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Transcripción:

Sistemas operativos 2ª edición Capítulo 7 Interbloqueos (extracto de las transparencias del libro Contenido Introducción Modelo general del sistema Definición y tratamiento del interbloqueo Detección y recuperación del interbloqueo Prevención del interbloqueo Predicción del interbloqueo Tratamiento del interbloqueo en los sistemas operativos 2 Introducción Ejemplo de interbloqueo Procesos compiten por recursos y se comunican Conflicto puede causar bloqueo indefinido Interbloqueo (deadlock Conocido y estudiado desde hace mucho tiempo Poca repercusión práctica en SSOO Aparece en otras disciplinas informáticas Proceso Solicita(C Solicita(I Uso de rec. Libera(I Libera(C Proceso Solicita(I Solicita(C Uso de rec. Libera(C Libera(I Ejecución con interbloqueo P 1 : solicita(c P 2 : solicita(i P 2 : solicita(c bloqueo P 1 : solicita(i interbloqueo Ejecución sin interbloqueo P 1 : solicita(c P 1 : solicita(i P 2 : solicita(i bloqueo P 1 : libera(i P 2 : solicita(c bloqueo P 1 : libera(c P 2 : libera(c P 2 : libera(i 3 4

Modelo del sistema Ejemplo 1 de representación con grafo Conjunto de procesos o threads Conjunto de recursos de uso exclusivo (N unidades/recurso Relaciones entre procesos y recursos: Asignación: nº unidades asignadas a cada proceso Pendientes: nº unidades pedidas pero no asignadas Primitivas genéricas: Solicitud (R 1 [U 1 ],...,R n [U n ] Liberación (R 1 [U 1 ],...,R n [U n ] Carácter dinámico del sistema: Procesos y recursos aparecen y desaparecen Representación mediante grafo o matriz 3 proc y 3 rec R 1 (2,R 2 (3,R 3 (2 1. P 1 : solicita(r 1 [2] solicita 2 2. P 2 : solicita(r 2 [1] 3. P 2 : solicita(r 1 [1] bloq 4. P 3 : solicita(r 2 [1] 5. P 3 : solicita(r 2 [1] 6. P 1 : solicita(r 2 [1],R 3 [2] bloq 6 3 1 2 4 5 5 6 Ejemplo 2 de representación con grafo (1 unid/rec Ejemplo 3 de representación con grafo 1. P 1 : solicita(r 1 2. P 2 : solicita(r 2 3. P 2 : solicita(r 1 bl. 4. P 3 : solicita(r 2 bl. 5. P 4 : solicita(r 3 6. P 1 : solicita(r 2.. 1 6 R1 3 2 R2 4 R3 5 P4 7 8

Definición y tratamiento de interbloqueo Conjunto de procesos tal que cada uno está esperando un recurso que sólo puede liberar otro proceso del conjunto Tratamiento del interbloqueo: Detección y recuperación. Se detecta y se recupera Coste de algoritmo + pérdida del trabajo realizado Prevención. Asegura que no ocurre fijando reglas Infrautilización de rec.: se deben pedir antes de necesitarlos Predicción. Asegura que no ocurre basándose en conocimiento de necesidades futuras de los procesos Dificultad de conocer futuro Coste de algoritmo + Infrautilización de recursos Ignorar el problema Utilizada por la mayoría de los SS.OO. Detección del interbloqueo Algoritmo que comprueba si se cumplen condiciones de interbl. Condiciones necesarias pero no suficientes (Coffman: Exclusión mutua. Retención y espera. Sin expropiación. Espera circular. Si restricciones (1 unid/rec, cond. son necesarias y suficientes Ejemplo 2: Ciclo en grafo espera circular interbloqueo Ejemplo 1: Ciclo en grafo espera circular No interbloq. Ejemplo 3: Ciclo en grafo espera circular interbloq. Se necesita condición necesaria y suficiente para sist. general 9 10 Condición necesaria y suficiente Alg. de detección para Ejemplo 1 (1/2 Proceso no bloqueado debería devolver recursos en el futuro Recursos liberados desbloquearían otros procesos... Reducción (Red del sistema por proceso P Si se pueden satisfacer necesidades de P con r. disponibles Nuevo estado hipotético donde P ha liberado todos sus rec. Condición necesaria y suficiente: secuencia de Red desde estado actual todos los procesos Si no: procesos están en interbloqueo Estado inicial 6 3 1 2 4 5 Reducción por 11 12

Alg. de detección para Ejemplo 1 (2/2 Alg. de detección para Ejemplo 3 Reducción por Reducción por Estado inicial Reducción por No hay interbloqueo No más reducciones: Interbloqueo 13 14 Activación del algoritmo de detección Recuperación del interbloqueo Supervisión continua: Por cada petición que no puede satisfacerse Puede tener coste demasiado alto Supervisión periódica: Guiada por tiempo y/o por detección de síntomas Quitar recursos a procesos hasta eliminar interbloqueo Alternativas: Retroceder en el tiempo : Requiere puntos de recuperación Abortar proceso perdiendo todo su trabajo realizado Selección de procesos basada en: prioridad, nº de recursos asignados al proc., t. de ejecución,... Estrategia adecuada para bases de datos 15 16

Prevención del interbloqueo Prevención evitando retención y espera Que no se cumpla una condición necesaria Exclusión mutua y sin expropiación no se pueden relajar Dependen de carácter intrínseco del recurso Las otras dos condiciones son más prometedoras Sólo se puede pedir si no se tiene Infrautilización t 1 : solicita(a,b,c (t 1,t 2 : sólo utiliza A (t 2,t 3 : utiliza A y B t 3 : Libera(A (t 3,t 4 : sólo utiliza B (t 4,t 5 : utiliza B y C t 5 : Libera(B (t 5,t 6 : sólo utiliza C t 6 : Libera(C t 7 : solicita(d (t 7,t 8 : sólo utiliza D t 8 : Libera(D tiempo A B C D t 1 t 2 t 3 t 4 t 5 t 6 7 t 8 17 18 Prevención evitando espera circular Predicción del interbloqueo Método de las peticiones ordenadas: Establece orden de recursos del sistema Según forma de uso más frecuente Restricción: Proceso sólo puede pedir en orden Conlleva infrautilización: Si A<B<C<D Proceso pide justo cuando necesita Si A>B>C>D Proceso pide todo en t 1 Punto sin retorno: y obtienen su primer recurso No concede 1 de esas peticiones sistema en estado seguro Proceso Proceso Solicita(C Solicita(I Solicita(I Solicita(C Uso de rec. Uso de rec. Libera(I Libera(C Libera(C Libera(I 19 20

Concepto de estado seguro Aunque procesos pidiesen de golpe necesidades máximas hay un orden de ejecución tal que cada proceso pueda obtenerlas Similar a detección pero con necesidades máximas Estado seguro: No interbl. usando como solicitudes las necesidades máx. Conocimiento a priori no da información sobre uso real Estado inseguro condición necesaria pero no suficiente Proceso Solicita(C Libera(C Solicita(I Libera(I Proceso Solicita(I Solicita(C Libera(C Libera(I Algoritmo de predicción Algoritmo del banquero de Dijkstra (1965 Estructuras de datos requeridas: Vector D (dim p: D i cuántas unid de R i hay disponibles Matriz A (dim pxr: A[i,j] unid de R j asignadas a P i Matriz N (dim pxr: N[i,j] unid adicionales de R j puede necesitar P i Es la diferencia entre necesidades máx. y unidades asignadas Inicialmente contiene necesidades máx. de cada proceso Solicitud de recursos de Pi: Todos disponibles? Sí. Por cada Rj: A[i,j]= A[i,j]+ Uj y N[i,j]= N[i,j]- Uj (Uj unidades solicitadas de R j Liberación de recursos de Pi: Por cada Rj: A[i,j]= A[i,j]- Uj y N[i,j]= N[i,j]+ Uj (Uj unidades liberadas de R j 21 22 Algoritmo del banquero Estrategia de predicción S= ; Repetir { Buscar P i en S tal que N[i] D; Si Encontrado { Reducir por P i : D = D + A[i] Añadir P i a S; Mientras (Encontrado Si (S==P El estado es seguro Si no: El estado no es seguro Proceso realiza petición de recursos disponibles: Nuevo estado provisional transformando A y N Algoritmo del banquero sobre nuevo estado Si seguro, se asignan recursos Si no, se bloquea al proceso sin asignarle los recursos 23 24

Ejemplo de algoritmo del banquero (1/3 Estado actual del sistema (es seguro: 1 1 0 3 0 2 A= 0 1 2 N= 2 2 0 D= 2 1 2 1 0 0 1 1 2 Secuencia de peticiones: P 3 solicita 1 unidad de R 3 P 2 solicita 1 unidad de R 1 Ejemplo de algoritmo del banquero (2/3 P 3 solicita 1 unidad de R 3 : Nuevo estado provisional 1 1 0 3 0 2 A= 0 1 2 N= 2 2 0 D= 2 1 1 1 0 1 1 1 1 Estado seguro? 1. S= 2. P 3 : ya que N[3] D D=D+A[3]=[312] S={P 3 3. P 1 : ya que N[1] D D=D+A[1]=[422] S={P 3,P 1 4. P 2 : pues N[2] D D=D+A[2]=[434] S={P 3,P 1,P 2 Se acepta petición: estado provisional estado del sistema 25 26 Ejemplo de algoritmo del banquero (3/3 Limitaciones de estrategias de predicción P 2 solicita 1 unidad de R 1 : Nuevo estado provisional 1 1 0 3 0 2 A= 1 1 2 N= 1 2 0 D= 1 1 1 1 0 1 1 1 1 Estado seguro? 1. S= 2. P 3 : ya que N[3] D D=D+A[3]=[212] S={P 3 3. No hay Pi tal que N[i] D Estado inseguro Conocimiento a priori de necesidades máximas Difícil de obtener Basado en peor caso posible Necesidades máximas no expresan uso real de recursos Infrautilización de recursos Niegan uso de recurso aunque esté libre No se acepta petición: Se bloquea al proceso y se restaura estado del sistema 27 28

Tratamiento del interbloqueo en los SSOO Mayoría lo ignora o no da solución general Distinción entre dos tipos de recursos: Recursos internos (propios del SO Uso restringido a una activación del sistema operativo P. ej. spinlocks y semáforos internos Interbloqueo puede causar colapso del sistema Recursos de usuario (usados en modo usuario Uso durante tiempo impredecible P. ej. dispositivo dedicado o semáforo de aplicación Interbloqueo afecta a procesos y recursos involucrados Tratamiento del interbloqueo en los SSOO Tratamiento de recursos internos Código del SO apenas se modifica Interbloqueo error de programación de SO Uso de estrategias de prevención es adecuado Tiempo de uso es breve y acotado Solución habitual: ordenamiento de recursos Tratamiento de recursos de usuario Código de procesos que usan recursos es impredecible No hay tratamiento general para todos los recursos Prevención Infrautilización Predicción Dificultad de conocer información a priori Detección y recuperación Demasiada sobrecarga Aunque sí se usa para controlar un tipo de recurso específico 29 30 Ejemplo de interbloqueo (1/2 // Versión con posible interbloqueo struct nodo { struct nodo *siguiente; /* otros campos */ ; struct lista { pthread_mutex_t mutex_lista; struct nodo *primer_nodo; ; void mover_elemento_de_lista(struct lista *origen, struct lista* destino, struct nodo *elemento, int posicion_destino { pthread_mutex_lock(&origen->mutex_lista; pthread_mutex_lock(&destino->mutex_lista; /* mueve el elemento a ls lista destino */ pthread_mutex_unlock(&origen->mutex_lista; pthread_mutex_unlock(&destino->mutex_lista; Ejemplo de interbloqueo (2/2 // Versión libre de interbloqueos void mover_elemento_de_lista(struct lista *origen, struct lista* destino, struct nodo *elemento, int posicion_destino { if (origen < destino { pthread_mutex_lock(&origen->mutex_lista; pthread_mutex_lock(&destino->mutex_lista; else { pthread_mutex_lock(&destino->mutex_lista; pthread_mutex_lock(&origen->mutex_lista; /* mueve el elemento a ls lista destino */ pthread_mutex_unlock(&origen->mutex_lista; pthread_mutex_unlock(&destino->mutex_lista; 31 32