Está en la página 1de 5

Capitulo 7 interbloques 234-259 Un interbloqueo o bloqueo mutuo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten

por los recursos del sistema. En la multiprogramacin los procesos pueden competir por los recursos 1 proceso solicita recurso si no hay el proceso pasa a espera y puede que siempre este en ese estado ya que el recurso puede estar ocupado por siempre a esto se le llama interbloqueo Modelo de sistema: No hay muchos recursos y tienen varios tipos-> proceso solicita instancia -> lo asigna a cualquiera q satisfaga de lo contrario las instancias no son idnticas->recurso no definido Un proceso debe de solicitar (no deben ser mas de los recursos disponibles) antes de usar y liberar despus de usar el recurso los cuales pueden ser fsicos (impresora, memoria, etc.) o lgicos (archivos, semforos y monitores) Un proceso puede emplear un recurso siguiendo la siguiente secuencia: 1. Solicitud: si la solicitud no puede ser concedida inmediatamente, entonces el proceso solicitante tendr que esperar hasta que pueda adquirir el recurso. 2. Uso: el proceso puede operar sobre el recurso. 3. Liberacin: el proceso libera el recurso (llamadas del sistema). Tambin ocurre un interbloqueo si un proceso ocupa 2 o mas recursos (unidad DVD y impresora) este caso lo tienen que atender los programadores en aplicaciones multihebras. Condiciones necesarias Un interbloqueo se puede dar en las siguientes condiciones necesarias y todas se deben de cumplir:

Exclusin mutua: al menos un recurso debe estar en modo no compartido. Retencin y espera: un proceso debe estar reteniendo al menos un recurso y esperando para adquirir otros recursos adicionales. Sin desalojo: los recursos solo pueden ser liberados voluntariamente por el proceso que los retiene. Esperar circular: debe existir un conjunto de procesos en espera, tal que cada proceso est esperando a un recurso determinado. Grafo de asignacin de recursos Consta de un conjunto de vrtices y aristas. Una arista dirigida al proceso p hacia el recurso r se representa (Pi->Rj) significa el proceso solicito r y esta esperando. Arista dirigida de Rj-> Pi indica que una instancia esta asignado al proceso grficamente se representa con circulo y recurso con cuadro instancia un punto en un cuadro

Mtodos para tratar los interbloqueos Cuando ocurre un interbloqueo lo podemos tratar de tres formas:

La utilizacin de un protocolo para evitar los interbloqueos, asegurando que el sistema nunca entre en estado de interbloqueo. Permitir que el sistema entre en un estado de interbloqueo, detectarlo y realizar una recuperacin. Ignorar los interbloqueos en el sistema (ms usada). Para que nunca se produzcan interbloqueos se puede emplear un esquema de prevencin (asegura que al menos una condicin necesaria no pueda cumplirse) o evasin (requiere que se proporcione informacin adicional sobre los recursos a solicitar u usara un proceso durante su tiempo de vida en este caso se debe de saber que recursos hay disponibles) si no se usan alguno de estos algoritmos se puede producir un interbloqueo Prevencin de interbloqueos Para tratar los interbloqueos, existen los algoritmos de prevencin de interbloqueos, los cuales restringen el modo en que pueden hacerse las solicitudes, estas restricciones aseguran que al menos una de las condiciones necesarias para que haya interbloqueo no se produzca y, por tanto no pueda aparecer interbloqueos. El contra de utilizar estos algoritmos es que se da una baja tasa de utilizacin de los dispositivos y un menor rendimiento del sistema.

Exclusin mutua: usado en recursos q no pueden ser compartidos (no se puede compartir una impresora) ejemplo contrario archivos de solo lectura Retencin y espera: evitar que P solicite R, P no retenga otro R solucin (protocolo exige cada P solicite todos los procesos antes de ejecutar-> alternativa P solisite R solo si no tiene ninguno retenido caso de usar varios R y solicite uno adicional tiene q liberar todo) Sin desalojo: si P retiene R y solicita otro R q no se puede asugnar entonces la R actuales se desalojan y estos se alojan en lista de R que P esta esperando y P reinicia cuando recupera la lista junto con los nuevos Esperar circular: impone un orden de todos los tipos de R y requiere q los P solicite R en orden creciente Evasin de interbloqueos Este mtodo requiere la informacin del cmo se solicita los Recursos para la toma de deciciones se considera los R disponibles, los asignados, solicitados y futuras liberaciones Estado seguro Cada R tiene un P hasta si mximo osea no pueden haber interbloqueos (son inseguros) Grafo de asignacin de recurso Arista de declaracin: P puede solicitar R en algn instante futuro representada con una lnea de trazos Algoritmo de banquero

Usado en sistemas de asignacin de R con multiples instancias de casa R 1 declara # mximo de instancias de cada R no puede exeder el # de R del sistema. Si el sistema detecta que en la asignacin deja estado seguro los R se asignan de lo contrario P tiene que esperar Available: vector [m] = # R disponibles si available [j] = k existe k instancias disp. De tipo de R Max : matriz nxm indica demanda max de cada proceso si max[i][j]=k entonces P puede solicitar mximo k instancias de tipo de R. Allocation : matriz nXm si allocation [i][j] = k, P tiene asignadas k instancias de tipo de R Need : matriz nXm (necesidad de restantes R) si need [i][j] = k, P puede necesitar k instancias de tipo de R para completar tareas (need = max)

Algoritmo de seguridad

Algoritmo de recursos

Deteccion de interbloqueos Si no se usan algoritmos de prevencion ni ecacion puede ocurrir un interbloqueo en el sistema para ello se debe de proporcionar :

Algoritmo que examine estado del sistema que determine si a ocurrido un interbloqueo Algritmo que se recupere del interbloqueo

Una sola instancia de cada tipo de recurso Si R tiene 1 instancia-> algoritmo de detecion de interbloqueos q usa grafo de asignacin de recursos (grafo de espera) este no es aplicable con multiples instancias Varias instancias de cada tipo de recurso

Comparte el algoritmo banquero Utilizacin del algoritmo de detencin Depende de con q frecuencia se producir un interbloqueo?(si son frecuentes si se debe involucrar frecuentemente) Y Cuntos P se vern afectados cuando se produzca un Interbloqueo? Recuperacin de un interbloqueo Informar al operador y dejar la solucin de forma manual Dejar que el sistema se recupere del interbloqueo (automaticamente)

Terminacin de procesos Interrumpir todos los procesos interbloqueados: interrumpir el ciclo de interbloqueo (precio alto) probablemente se repetir el proceso Interrumpir un proceso cada ves hasta que el cicli de interbloqueo se elimine : requiere de tranbajo adicional xq hay que invocar un algoritmo de detencin de interbloqueos para saber si todava hay procesos en interbloqueo Factores que influyen 1. Prioridad del proceso

2. Caunto tiempo ha estado el proceso ejecutndose y cuanto tiempo adicional necesita el P para completar la tarea 3. Cuantos y tipo de recursos ha utilizado el proceso 4. Cuantos recursos necesita para completarse 5. Cuantos P hara falta terminar 6. Si se trata de un P interactivo o de procesamiento por lotes Apropiacin de recursos Apar utilizar este mtodo desalojamos de forma sucesiva los recursos de los procesos y asignamso dichos recursos a otros procesos hasta que el ciclo de interbloqueo se interrumpa 1. Seleccin de una victima: de que recursos hay que apropiarse y de que porcesos? 2. Anulacin : como es difcil de determinar el estado seguro se hace anulacin completa (interrumpir y reiniciar el proceso )aunque es mas fcil la anuacion hasta donde se necesite pero esto requiere mas informacin sobre el estado en ejecucin . 3. Inanicin: Cmo se puede asegurar que no se produzca la muerte por inanicin de un proceso es decir como podemos garantizar que los recursos no se tomen siempre el mismo proceso ? x factor de coste (puede que se elija siempre el mismo proceso )