Вы находитесь на странице: 1из 24

SISTEMAS OPERATIVOS DE REDES CEUTEC

Cdigo de la asignatura Unidades valorativas Requisitos acadmicos Capitulo 7 Interbloqueos

CCC416 4 CCC404 REDES

Rossell Arturo Martnez

Introduccin

Modelo de Sistema Caracterizacin de los Interbloqueos Mtodos para Tratar los Interbloqueos Prevencin de los Interbloqueos Evasin de los Interbloqueos Deteccin de los Interbloqueos Recuperacin de un Interbloqueo Resumen

Silberschatz, Galvin & Gagne (c) 2009

Objetivos

Desarrollar una descripcin de interbloqueos que prevenga a un conjunto de procesos de completar sus tareas Presentar diferentes mtodos para prevenir o evitar interbloqueos en un sistema informtico

Silberschatz, Galvin & Gagne (c) 2009

El Problema del Interbloqueo

Un grupo de procesos cada uno tiene un recurso y esta esperando obtener otro recurso que tiene otro proceso en el grupo Ejemplo Un sistema tiene 2 discos P1 y P2 cada uno tiene un disco y cada uno necesita el disco del otro Ejemplo

Silberschatz, Galvin & Gagne (c) 2009

Modelo de Sistema

Un sistema consta con un numero finito de recursos, R1, R2, . . ., Rm Ciclos de CPU, espacio de memoria, dispositivos E/S Cada recurso Ri tiene Wi instancias Cada proceso utiliza los recursos as: Solicitud, si la solicitud no puede ser concedida inmediatamente, el proceso solicitante espera hasta que pueda adquirir Uso, el proceso puede operar sobre el recurso Liberacin, el proceso libera el recurso

Silberschatz, Galvin & Gagne (c) 2009

Caracterizacin de los Interbloqueos

Un Interbloqueo se presenta si se dan simultneamente las 4 condiciones siguientes Exclusin mutua, solo un proceso a la vez puede usar un recurso Retencin y espera, un proceso retiene al menos un recurso y espera otro recurso adicional que retiene otro proceso Sin desalojo, un recurso solo puede ser liberado voluntariamente por el proceso que lo retiene, despus de completar su tarea Espera circular, debe existir un grupo de procesos {P0, P1, , Pn} tal que P0 esta esperando un recurso retenido por P1 y este esperando un recurso retenido por Pn y este a uno de P0
Silberschatz, Galvin & Gagne (c) 2009

Grafo de Asignacin de Recursos

Grafo de asignacin de recursos del sistema, consta de un grupo de vrtices V y aristas E V se divide en dos grupos diferentes de nodos: P = {P1, P2, , Pn}, grupo de todos los procesos R = {R1, R2, , Rm}, grupo de todos los tipos de recursos Arista de solicitud, arista dirigida Pi Rj Arista de asignacin, arista dirigida Rj Pi

Silberschatz, Galvin & Gagne (c) 2009

Grafo de Asignacin de Recursos

Ejemplo de Grafo, el primero normal, el segundo con interbloqueo, el tercero con un ciclo pero no interbloqueo

Silberschatz, Galvin & Gagne (c) 2009

Hechos Bsicos

Si un grafo no tiene ciclos, no hay interbloqueos Si un grafo tiene ciclos: Si solo existe una instancia por tipo de recurso, hay interbloqueo Si tenemos varias instancias por tipo de recurso, posibilidad de interbloqueo

Silberschatz, Galvin & Gagne (c) 2009

Mtodos para Manejar Interbloqueos

Podemos abordar el problema de tres formas Podemos emplear un protocolo para impedir o evitar interbloqueos, asegurando que el sistema nunca entre en estado de interbloqueo Permitir que el sistema entre en estado de interbloqueo, detectarlo y realizar una recuperacin Ignorar el problema y actuar como si nunca se produjeran interbloqueos en el sistema La tercera aproximacin es la que usan la mayora de los sistemas operativos, incluyendo Windows y UNIX

Silberschatz, Galvin & Gagne (c) 2009

Prevencin de Interbloqueos

Asegurando que una de las cuatro condiciones no se cumpla podemos prevenir la aparicin de interbloqueos Exclusin mutua, no es requerida para recursos compartidos Retencin y espera, debe garantizar que cuando un proceso solicite un recurso el solicitante no tenga otros recursos Requiere que el proceso solicite y obtenga todos los recursos antes de comenzar su ejecucin, o permitir que el proceso solicite recursos solamente cuando no tenga asignado ninguno Poca utilizacin de recursos, posible inanicin

Silberschatz, Galvin & Gagne (c) 2009

Prevencin de Interbloqueos

Sin desalojo Si un proceso que tiene asignado varios recursos solicita otro recurso que no puede ser asignado en el momento, entonces todos los recursos que tiene asignados sern liberados Los recursos desalojados sern sumados a la lista de recursos que el proceso esta esperando El proceso se reiniciar cuando pueda recuperar sus antiguos recursos junto con los nuevos recursos que esta solicitando Espera circular Hacer un ordenamiento numrico total de todos los tipos de recursos, y solicitar que cada proceso requiera recursos en orden creciente de enumeracin

Silberschatz, Galvin & Gagne (c) 2009

Evasin de Interbloqueos

Es necesario tener a priori cierta informacin disponible Es el modelo mas simple y til solo requiere que cada proceso declare el numero mximo de recursos de cada tipo que pueda necesitar El algoritmo de evasin de interbloqueos examina de forma dinmica el estado de asignacin de recursos para asegurar que nunca se produzca una condicin de espera circular El estado de asignacin de recursos esta definido por el numero de recursos disponibles y asignados y la demanda mxima de los procesos

Silberschatz, Galvin & Gagne (c) 2009

Estado Seguro

Cuando un proceso solicita un recurso disponible, el sistema debe decidir si la asignacin inmediata del mismo deja el sistema en un estado seguro o que se produzca un interbloqueo Un sistema esta en estado seguro si existe una secuencia segura Los procesos <P1, P2,.., Pn> es una secuencia segura si para cada Pi las solicitudes de sus recursos puedan ser satisfechas por los recursos disponibles mas los recursos retenidos de los otros Pj, tal que j < i Si los recursos que necesita Pi no estn disponibles inmediatamente, entonces Pi puede esperar hasta que Pj haya terminado Cuando Pj termina, Pi puede obtener los recursos necesarios Cuando Pi termina, entonces Pi+1 puede obtener los recursos necesarios, as sucesivamente

Silberschatz, Galvin & Gagne (c) 2009

Hechos Bsicos

Si un sistema se encuentra en estado seguro, no hay interbloqueos Si un sistema esta en estado inseguro, hay posibilidades de interbloqueos La evasin de interbloqueos asegura que el sistema nunca estar en estado inseguro

Silberschatz, Galvin & Gagne (c) 2009

Deteccin de Interbloqueos

Un sistema puede no emplear algoritmos de prevencin y evasin de interbloqueos. Cuando hay uno el sistema debe proporcionar: Un algoritmo que examine el estado del sistema para determinar si hay un interbloqueo Un algoritmo para recuperarse del interbloqueo

Silberschatz, Galvin & Gagne (c) 2009

Deteccin de Interbloqueos

Si todos los recursos tienen una nica instancia definimos un algoritmo de deteccin con la variante del grafo de asignacin de recursos El grafo de espera Nodos son procesos Arista Pi Pj si Pi esta esperando por Pj Peridicamente invocar un algoritmo que busque por un ciclo en el grafo, si existe uno tenemos un interbloqueo Un algoritmo que detecte un ciclo en un grafo requiere un orden de n2 operaciones, donde n es el numero de vrtices o procesos en el grafo

Silberschatz, Galvin & Gagne (c) 2009

Deteccin de Interbloqueos

(a) grafo de asignacin de recursos (b) grafo de espera correspondiente

Silberschatz, Galvin & Gagne (c) 2009

Deteccin de Interbloqueos

Si tenemos varias instancias de cada tipo el grafo de espera no es aplicable, pero hay un algoritmo para eso: Avaible, un vector de longitud m que indica el numero de recursos disponibles de cada tipo Allocation, una matriz de n x m que define el numero de recursos de cada tipo asignados a cada proceso Request, una matriz de n x m que especifica la solicitud actual hecha por cada proceso Si Request [i][j] = k, entonces el proceso Pi esta solicitando k instancias mas del tipo de recurso Rj

Silberschatz, Galvin & Gagne (c) 2009

Deteccin de Interbloqueos

1. Sean Work y Finish vectores de longitud m y n respectivamente. Inicialmente Work = Avaiable Para i = 0, 1, , n-1, si Allocation != 0 Entonces Finish[i] = falso

Sino Finish[i] = true

2. Hallar un indice i tal que Finish[i] = falso Requesti <= Work Si no existe tal i, ir al paso 4

Silberschatz, Galvin & Gagne (c) 2009

Deteccin de Interbloqueos

3. Work = Work + Allocationi Finish[i] = true Ir al paso 2 4. si Finish[i] == falso para algn i tal que 0 <= i < n Entonces el sistema se encuentra en interbloqueo Adems si Finish[i] = falso Entonces el proceso Pi esta en interbloqueo Este algoritmo requiere del orden m X n2 operaciones para detectar si el sistema esta en interbloqueo

Silberschatz, Galvin & Gagne (c) 2009

Recuperacin de un Interbloqueo

Una vez que se ha determinado que hay un interbloqueo tenemos varias posibilidades Abortar todos los procesos interbloqueados Abortar un proceso a la vez hasta que el ciclo de interbloqueo esta eliminado En que orden escogemos el proceso a abortar? Costo mnimo Prioridad del proceso

Cuanto tiempo lleva procesado y cuanto le hace falta Los recursos que el proceso ha utilizado Los recursos que necesita para completarse Cuantos procesos necesitamos terminar El proceso es interactivo o batch?

Silberschatz, Galvin & Gagne (c) 2009

Apropiacin de Recursos

Desalojamos de forma sucesiva los recursos de los procesos y asignamos a otros procesos hasta que el termine el interbloqueo Seleccin de la victima, minimizar el costo Anulacin, regresar a un estado seguro, reiniciar procesos desde ese estado Inanicin, algunos procesos puede que siempre se escojan de victimas, incluir el numero de rollback en el factor de costo

Silberschatz, Galvin & Gagne (c) 2009

Capitulo 6

Вам также может понравиться