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

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

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

TEMA 2. El Interbloqueo. Contenido

CAPITULO 6. Control de Concurrencia y Recuperación

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1

Manipulación de procesos

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Capítulo IV. INTERBLOQUEO E INANICIÓN

Procesos. Planificación del Procesador.

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

Filósofos comensales

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

Sistemas Operativos. Primer Cuatrimestre de Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

1. Sistema Operativo Unix

HP - UX. Qué es HP UX?

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia entre Procesos.

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

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

Teoría de grafos y optimización en redes

Introducción a los Sistemas Operativos

Programación Concurrente en Java

Tema 2. Procesos. 1. Concepto de proceso

Mensajes. Interbloqueo

Algoritmos para determinar Caminos Mínimos en Grafos

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Concurrencia. Primitivas IPC con bloqueo

Integridad Transaccional

Tema 6 Organización y gestión de la memoria

Sistemas Operativos Practica 1: procesos y concurrencia.

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

Práctica : Instalación de Windows 2000 Server

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Sistemas Operativos Tema 6. Planificación de procesos José Miguel Santos Alexis Quesada Francisco Santana

Práctica 2: El problema de la sección crítica

Tema: Clases y Objetos en C#. Parte II.

Planificador de Linux (Scheduler)

Administración de procesos: Ejercicios de sincronización

Tiempo real. Juan Antonio de la Puente DIT/UPM. Tiempo real. Comprender el papel del tiempo en el diseño y realización de sistemas de tiempo real

Sistemas Distribuidos: Migración de Procesos

Implementación de monitores POSIX

Organización del libro 2 Orden de presentación de los temas 3 Recursos en Internet y en la Web 4

TEMA 7. GESTIÓN DE PROCESOS

Diseño de sistemas concurrentes

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Unidad 2: Gestión de Procesos

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

BÚSQUEDA DE RUTAS DE METRO

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

UPM Gestión del tiempo real

El modelo de Procesos

Conexiones dedicadas y compartidas: pool de conexiones.

MANUAL DE REFERENCIA DE INSTALACIÓN RÁPIDA SISTEMA DE CONTROL DE ASISTENCIAS DE PERSONAL ON THE MINUTE VERSION 4.0

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

ASIGNATURAS CORRELATIVAS PRECEDENTES Programación II

Cristian Blanco

TÉCNICAS DE PLANIFICACIÓN Y CONTROL DE PROYECTOS 1

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 3. Aplicaciones de Tipo Consola

Servicios del Sistema Operativo (SO)

Usando el Sistema Operativo

Arquitectura de sistema de alta disponibilidad

INDICE Prologo Capitulo 0. Guía del lector Primera parte: antecedentes Capitulo 1. Introducción a los computadores

Bases de Datos I. Cursada Clase 7: Recuperación de BD. Introducción a la Seguridad. Introducción a la Seguridad

Tema 2. El lenguaje JAVA

28/08/ :52:22 Página 1 de 5

Guía Docente ESCUELA POLITÉCNICA SUPERIOR

Ley o normas que regulan las competencias y recursos asignados a la institución.

Un grafo G = (V, E) se dice finito si V es un conjunto finito.

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

Solución Examen Febrero 2006

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Funcionamiento de la computadora

Circular de Tecnología Pautas para el uso de Certificados Digitales Personales

4. DIAGRAMAS DE INTERACCIÓN INTRODUCCIÓN DIAGRAMAS DE SECUENCIA Objetos Mensajes

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010

Virtualización Open Source. Virtulización basado en Linux para escritorios y servidores con compatibilidad para Microsoft Windows

SISTEMAS OPERATIVOS. 1Responda brevemente a estas preguntas: Convocatoria extraordinaria, 13 de septiembre de 2006

Servicio de instalación y puesta en marcha del software HP StoreOnce Recovery Manager Central

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Tema: Los Grafos y su importancia para la optimización de redes.

CDI Exclusión mutua a nivel alto. conceptos

MODELOS DE RECUPERACION

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo.

Versión Fecha de última actualización: Enero

Transcripción:

Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos Métodos para el Manejo de Interbloqueos Prevención de Interbloqueos Evasión de Interbloqueos Detección de Interbloqueos Recuperación de Interbloqueos

Objetivos Desarrollar una descripción de interbloqueos, para asegurar que conjuntos de procesos concurrentes completan sus tareas. Presentar un número de métodos diferentes para prevenir o evitar interbloqueos en un sistema de computación. El Problema de Interbloqueo Un conjunto de procesos bloqueados, cada uno teniendo recursos y esperando adquirir otro tenido por procesos en el conjunto. Ejemplo Un sistema tiene 2 discos. P 1 y P 2 cada uno tiene un disco y necesita otro. Ejemplo semáforos A y B, inicializados a 1 P 0 P 1 wait (A); wait(b) wait (B); wait(a)

Ejemplo del Cruce en el Puente Tránsito en una sola dirección. Cada sección de un puente puede ser vista como un recurso. Si un interbloqueo ocurre, puede ser resuelto si cada auto retrocede (se apropia de recursos y rollback). Varios autos pueden retroceder si un interbloqueo occurre. Es posible la inanición. Modelo de Sistema Tipos de Recursos R 1, R 2,..., R m ciclos CPU, espacio de memoria, dispositivos E/S Cada recurso tipo R i tiene W i instancias. Cada proceso utiliza un recurso como sigue: requerimiento uso liberalización

Caracterización de Interbloqueos El Interbloqueo puede alcanzarse si se cumplen las cuatro condiciones simultaneamente. Exclusión Mutua : solo un proceso a la vez puede usar un recurso. Retener y Esperar: un proceso mantiene al menos un recurso y está esperando adquirir recursos adicionales tenidos por otros procesos. No Apropiación: Un recurso puede ser liberado solo voluntariamente por el proceso que lo tiene, despues que el proceso ha completado su tarea. Espera Circular: existe un conjunto {P 0, P 1,, P 0 } de procesos esperando tal que P 0 está esperando por un recurso que es retenido por P 1, P 1 está esperando por un recurso que es retenido por P 2,, P n 1 está esperando por un recurso que es retenido por P n, y P 0 está esperando por un recurso que es retenido por P 0. Grafo de Alocación de Recursos Un conjunto de vértices V y un conjunto de lados E. V está particionado en dos tipos: P = {P 1, P 2,, P n }, el conjunto consistente de todos los procesos en el sistema. R = {R 1, R 2,, R m }, el conjunto consistente de todos los recursos tipo en el sistema. lado de requerimiento lado dirigido P 1 R j lado de asignamiento lado dirigido R j P i

Grafo de Alocación de Recursos (Cont.) Proceso Recurso tipo con 4 instancias P i requiere una instancia de R j P i R j P i mantiene una instancia R j P i Rj Ejemplo: Grafo de Alocación de Recursos

Grafo de Alocación de Recursos con Interbloqueo Grafo de Alocación de Recursos con un Ciclo pero sin Interbloqueo

Cuestiones Básicas Si un grafo no contiene ciclos no hay interbloqueo. Si un grafo contiene un ciclo Si hay una sola instancia por tipo de recurso, entonces hay interbloqueo. Si hay varias instancias por tipo de recurso, hay posibilidad de interbloqueo. Métodos para Manejo de Interbloqueos Asegure que el sistema no entrará nunca estado de interbloqueo. Permitir al sistema entrar en un estado de interbloqueo y luego recuperarse. Ignore el problema y pretenda que el interbloqueo nunca ocurrió en el sistema; usado en la mayoría de los sistemas operativos incluído UNIX.

Estrategias para Manejo de Interbloqueos Las estrategias utilizadas para atacar el problema de interbloqueos se establecen en tres niveles de acción: antes que suceda, cuando los procesos están corriendo o con hechos consumados. Estas estrategias son: Prevención Evasión Detección Prevención de Interbloqueos Restringir los modos en que se pueden hacer los requerimientos Exclusión Mutua no requerido para recursos compartidos; debe mantenerse para recursos no compartidos. Mantener y Esperar debe garantizar que siempre que un proceso requiera un recursos no mantiene otros. Un proceso debe requerir y alocar todos sus recursos antes que comience su ejecución, o permitir a los procesos requerir recursos solo cuando no tenga ninguno. Baja utilización de recursos; es posible inanición.

Prevención de Interbloqueos(Cont.) No Apropiación Si un proceso que mantiene algunos recursos requiere otro recurso, no le puede ser inmediatamente alocado, entonces todos los recursos mantenidos son liberados. Los recursos apropiados son agregados a la lista de recursos por los cuales el proceso está esperando. El proceso se reiniciará solo cuando pueda reganar sus viejos recursos, tanto como los nuevos que está requiriendo. Espera Circular impone un orden total de todos los tipos de recursos, y requiere que cada proceso requiera recursos en un orden creciente de enumeración. Evasión de Interbloqueos Requiere que el sistema tenga disponible alguna información adicional a priori. El modelo más simple y útil requiere que cada proceso declare el máximo número de recursos de cada tipo que puede necesitar. El algoritmo de evasión de interbloqueos dinamicamen-te examina el estado de alocación de recursos para asegurar que no puede haber una condición de espera circular. El estado de alocación de recursos está definido por el número de recursos disponibles y alocados, y las máximas demandas de los procesos.

Estado Seguro Cuando un proceso requiere un recurso disponible, el algoritmo debe decidir si su alocación inmediata deja al sistema en un estado seguro. El sistema está en un estado seguro si existe una secuencia segura de ejecución de todos los procesos. La secuencia <P 1, P 2,, P n > es segura si por cada P i, los recursos que P i puede aún requerir pueden ser satisfechos por recursos disponibles corrientes más los recursos mantenidos por todos los P j, con j<i. Si los recursos que P i necesita no están inmediatamente disponibles, entonces P i puede esperar hasta que todos los P j hayan finalizado. Cuando P j finaliza, P i obtiene los recursos necesitados, ejecuta, retorna los recursos alocados, y termina. Cuando P i termina, P i+1 puede obtener los recursos que necesita, y así sucesivamente. Cuestiones Básicas Si un sistema está en un estado seguro no hay interbloqueo. Si un sistema está en un estado inseguro posibilidad de interbloqueo. Evasión asegura que el sistema nunca va a entrar en un estado inseguro.

Espacio de estados Seguro, Inseguro e Interbloqueo Interbloqueo inseguro seguro Algoritmos de Evasión Si sólo hay una instancia de un tipo de recurso. Use un grafo de alocación de recursos. Para múltiple instancias de un tipo de recursos. Use el algoritmo del banquero.

Algoritmo del Grafo de Alocación de Recursos Lado de reclamo P i R j indica que el proceso P j puede requerir el recurso R j ; representado por una línea de puntos. El lado de reclamo se convierte en lado de requerimiento cuando el proceso requiere un recurso. Cuando un recurso es liberado por un proceso, el lado de asignamiento se reconvierte a lado de reclamo. Los recursos deben ser reclamados a priori en el sistema. Grafo de Alocación de Recursos para Evasión de Interbloqueos

Estado Inseguro en un Grafo de Alocación de Recursos Algoritmo del Banquero Múltiples instancias. Cada proceso debe reclamar a priori el máximo uso. Cuando un proceso requiere un recurso puede tener que esperar. Cuando un proceso obtiene todos sus recursos debe retornarlos en una cantidad finita de tiempo.

Estructura de Datos del Algoritmo del Banquero Sea n = número de procesos, y m = número de tipos de recursos. Disponible: Vector de longitud m. Si disponible [j] = k, hay k instancias del tipo de recurso R j disponible. Max: matriz n x m. Si Max [i,j] = k, entonces el proceso P i puede requerir a lo sumo k instancias del recurso de tipo R j. Alocación: matriz n x m. Si Alocación[i,j] = k entonces P i tiene alocadas k instancias de R j. Necesidad: matriz n x m. Si Necesidad[i,j] = k, entonces P i puede necesitar k instancias mas de R j para completar su tarea. Necesidad [i,j] = Max[i,j] Alocación [i,j]. Algoritmo de Seguridad 1. Sean Trab y Final vectores de longitud m y n, respectivamente. Se inicializan: Trab := Disponible Final [i] = falso para i - 1,3,, n. 2.Encuentre un i tal que cumplan: (a) Final [i] = falso (b) Necesidad i Trab Si tal i no existe, vaya al paso 4. 3. Trab := Trab + Alocación i Final[i] := verdadero vaya al paso 2. 4.Si Final [i] = verdadero para todo i, entonces el sistema está en un estado seguro.

Algoritmo de Requerimiento de Recursos para el Proceso P i Request i = vector de requerimento para el proceso P i. Si Request i [j] = k entonces el proceso P i quiere k instancias del tipo de recurso R j. 1. Si Request i Necesidad i vaya al paso 2. Sino condición de error, dado que el proceso ha excedido su máximo. 2. Si Request i Disponible, vaya al paso 3. Sino P i debe esperar, dado que los recursos no están disponibles. 3. Se simula alocar los recursos requeridos P i modificando el estado como sigue: Disponible := Disponible - Request i ; Alocación i := Alocación i + Request i ; Necesidad i := Necesidad i Request i;; Si seguro los recursos son alocados a P i. Si inseguro P i debe esperar, y es restaurado el viejo estado de alocación de recursos Ejemplo del Algoritmo del Banquero 5 procesos P 0 a P 4 ; 3 recursos tipo A (10 instancias), B (5 instancias), y C (7 instancias). Instantánea en el instante T 0 : Alocación Max Disponible A B C A B C A B C P 0 0 1 0 7 5 3 3 3 2 P 1 2 0 0 3 2 2 P 2 3 0 2 9 0 2 P 3 2 1 1 2 2 2 P 4 0 0 2 4 3 3 Necesidad A B C 7 4 3 1 2 2 6 0 0 0 1 1 4 3 1

Ejemplo (Cont.) El contenido de la matriz Necesidad es definido como: Max Alocación A B C P 0 7 4 3 P 1 1 2 2 P 2 6 0 0 P 3 0 1 1 P 4 4 3 1 El sistema está en un estado seguro dado que la secuencia < P 1, P 3, P 4, P 2, P 0 > satisface los criterios de seguridad. Example (Cont.): P 1 requiere (1,0,2) Verifique que Request Disponible (esto es, (1,0,2) (3,3,2) verdadero. Alocación Necesidad Disponible A B C A B C A B C P 0 0 1 0 7 4 3 2 3 0 P 1 3 0 2 0 2 0 P 2 3 0 1 6 0 0 P 3 2 1 1 0 1 1 P 4 0 0 2 4 3 1 Ejecutando el algoritmo muestra que la secuencia <P 1, P 3, P 4, P 0, P 2 > satisface los requerimientos de seguridad. Puede el requerimiento (3,3,0) por P 4 ser satisfecho? Puede el requerimiento (0,2,0) por P 0 ser satisfecho?

Detección de Interbloqueos Permite al sistema entrar en estado de interbloqueo Algoritmo de Detección Esquema de Recuperación Instancia Simple de Cada Tipo de Recurso Se mantiene un grafo wait-for Los nodos son procesos. P i P j si P i está esperando por P j. Periodicamente se invoca un algoritmo que busca por ciclos en el grafo. Un algoritmo para detectar un ciclo en un grafo requiere un orden de n 2 operaciones, donde n es el número de vértices en el grafo.

Grafo de Alocación de Recursos y Grafo Wait-for Grafo de alocación de recursos Grafo wait-for correspondiente Varias Instancias de un Tipo de Recurso Disponible: Vector de longitud m indica el número de recursos disponibles de cada tipo. Alocación: Una matriz de n x m que define el número recursos de cada tipo corrientemente alocados por cada proceso. Request: Una matriz de n x m matrix que indica el requerimiento corriente de cada proceso. Si Request [ij] = k, entonces el proceso P i está requiriendo k instancias mas del recurso de tipo R j.

Algoritmo de Detección 1. Sean Trab y Final vectores de longitud m y n, respectivamente inicializados: (a) Trab = Disponible (b) Para i = 1,2,, n, si Alocación i 0, entonces Final[i] := falso; sino Final[i] := verdadero. 2. Encuentre un índice i tal que: (a)final[i] = falso (b)request i Trab Si no existe tal i, vaya al paso 4. Algoritmo de Detección 3. Trab := Trab + Alocación i Final[i] := verdadero vaya al paso 2. 4. Si Final[i] = falso, para algún i, 1 i n, entonces el sistema está en un estado de interbloqueo. Es mas, si Final[i] = falso, entonces P i está interbloqueado. El algoritmo requiere un order de O(m x n 2) operaciones para detectar si el sistema está en un estado de interbloqueo.

Ejemplo de Algoritmo de Detección Cinco procesos P 0 a P 4 ; tres tipos de recursos A (7 instancias), B (2 instancias), y C (6 instancias). En el instante T 0 : Alocación Request Disponible A B C A B C A B C P 0 0 1 0 0 0 0 0 0 0 P 1 2 0 0 2 0 2 P 2 3 0 3 0 0 0 P 3 2 1 1 1 0 0 P 4 0 0 2 0 0 2 La secuencia <P 0, P 2, P 3, P 1, P 4 > resultará en Final[i] = verdadero para todo i. Ejemplo (Cont.) P 2 requiere una instancia adicional del tipo C. Estado del sistema? Request A B C P 0 0 0 0 P 1 2 0 2 P 2 0 0 1 P 3 1 0 0 P 4 0 0 2 Puede reclamar recursos mantenidos por el proceso P 0, pero son insuficientes para completar otros procesos; Existe interbloqueo consistente de los processes P 1, P 2, P 3 y P 4.

Uso del Algoritmo de Detección Cuándo y qué frecuente debe invocarse depende de: Qué frecuente es probable que ocurra un interbloqueo? Cuántos procesos serán afectados cuando ocurra un interbloqueo? Si el algoritmo de detección es invocado arbitrariamente, puede haber muchos ciclos en el grafo de recursos y no se puede decir cual de los muchos procesos interbloqueados causó el interbloqueo. Recuperación de Interbloqueos: Terminación de Procesos Aborto de todos los procesos interbloqueados. Aborto de un proceso a la vez hasta que el ciclo de interbloqueo haya sido eliminado. En qué orden se elige abortar? Prioridad del proceso. Cuánto tiempo ha computado el proceso, y cuánto falta para completar. Recursos que el proceso ha usado. Recursos que el proceso necesita para completar. Cuántos procesos necesitarán ser terminados. Es el proceso interactivo o batch?

Recuperación de Interbloqueos: Apropiación de Recursos Selección de una víctima minimiza costos. Rollback retorna a algún estado seguro, reinicia el proceso desde ese estado. Inanición algunos procesos pueden ser elegidos siempre como víctimas, incluir un número de rollbacks en el factor de costo. Fin Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco