Академический Документы
Профессиональный Документы
Культура Документы
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
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
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
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
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 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
Ejemplo de Grafo, el primero normal, el segundo con interbloqueo, el tercero con un ciclo pero no interbloqueo
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
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
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
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
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
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
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
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
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
Deteccin de Interbloqueos
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
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
2. Hallar un indice i tal que Finish[i] = falso Requesti <= Work Si no existe tal i, ir al paso 4
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
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?
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
Capitulo 6