Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA: BLOQUEOS
BLOQUEOS
BLOQUEOS
Entorno multiprogramacin Varios procesos pueden competir por un nmero finito de recursos Procesos esperando recursos; nunca cambiaran de estado.
BLOQUEOS
Una carencia de sincronizacin de procesos puede dar lugar a dos condiciones extremas: El bloqueo mutuo (abrazo mortal) La inanicin
BLOQUEOS
Proceso solicita un recurso No est disponible Espera Puede que no cambie de estado Los recursos solicitados estn en manos de otros procesos que tambin estn en espera (Interbloqueo)
aplazamiento
BLOQUEOS
Modelo del Sistema: Los recursos finitos pueden ser de varios tipos cada uno de los cuales consta de varias instancias. Ejms: el espacio de memoria, los ciclos de CPU, los archivos, los dipositivos de E/S. Si el sistema tiene dos CPU, se dice que tiene dos ejemplares
BLOQUEOS - EJEMPLO
Suponga que dos procesos quieren quemar un documento digitalizado en un CD. Proceso A solicita autorizacin para usar el escner y se le concede. Proceso B solicita primero el quemador de CD y tambin se le concede.
Ahora A, pide el quemador de CD, pero se le niega porque B no lo ha liberado B solicita el escner, pero sin liberar el quemador de CD.
BLOQUEOS
Condiciones Necesarias
Llamadas al Sistema
En algunos S.O el proceso se bloquea automticamente y despierta cuando dicho recurso est disponible La solicitud falla y el proceso debe esperar para pedir el recurso.
BLOQUEOS
Solicitud y liberacin llamadas al sistema: request, release, device, open, entre otras. No son administradas por el SO pueden hacerse mediante semforos. Tablas en sistema para registrar solicitudes y liberaciones
BLOQUEOS
Un conjunto de procesos esta bloqueado cuando cada uno posee un recurso y esta a la espera de obtener un recurso posedo por otro proceso del conjunto.
Exclusin Mutua
Slo un proceso podr usar el recurso. Recurso retenido no compatible. Retener y esperar Cuando los procesos que tienen recursos previamente otorgados solicitan otros recursos. No apropiacin Un recurso no puede ser arrebatado a otro proceso, solo lo libera voluntariamente.
Espera circular
Debe existir un conjunto {P0,P1..,Pn} de procesos en espera tal que P0 est esperando un recurso que fu adquirido por P1, P1 est esperando un recurso que fu adquirido por P2,.., Pn-1 est esperando un proceso que fu adquirido por Pn y Pn est esperando un recurso que fu adquirido por P0
BLOQUEOS
Grfica Asignacin de Recursos
Nodos Procesos y Recursos Arcos De un proceso a un recurso Solicitud De un recurso a un proceso Asignacin Ciclos Indica la existencia de un bloqueo
BLOQUEOS
Grfica Asignacin de Recursos
BLOQUEOS
Grfica Asignacin de Recursos
BLOQUEOS
Grfica Asignacin de Recursos
a)
CICLOS
Si la grfica no contiene ciclos; no hay BM b) Si hay un ciclo y una sola instancia de cada recurso, condicin suficiente para BM. c) Varios ciclos BM. EJEMPLOS:
BLOQUEOS
Grfica Asignacin de Recursos
BLOQUEOS
Grfica Asignacin de Recursos
BLOQUEOS
Grfica Asignacin de Recursos
BLOQUEOS
Estrategias para enfrentar los Bloqueos
1) Podemos utilizar un protocolo para asegurar que el sistema nunca entrar en un estado de bloqueo mutuo. 2) Podemos permitir que el sistema entre en un estado de bloqueo mutuo y luego hacer una recuperacin. 3) Podemos ignorar el problema y pretender que los bloqueos mutuos nunca ocurren en el sistema; usado por la mayora de los sistemas operativos, incluyendo a UNIX.
BLOQUEOS
Estrategias para enfrentar los Bloqueos
1)
2)
Para asegurarnos que nunca ocurra un BM podemos usa estrategias de: Prevencin de BM Evitacin de BM
BLOQUEOS
Prevencin de Bloqueos
1)
Lograr que al menos unos de las 4 condiciones no se cumpla. Exclusin Mutua: Generalmente no es posible prevenir BM negando esta condicin. Ejm. Recursos que no puedan compartirse (memoria, CPU, o dispositivos dedicados).
BLOQUEOS
Prevencin de Bloqueos
BLOQUEOS
Prevencin de Bloqueos
BLOQUEOS
Prevencin de Bloqueos
BLOQUEOS
Prevencin de Bloqueos
3) No Apropiacin: Para asegurarnos que no se cumpla esta condicin podemos usar el siguiente protocolo: PROTOCOLO1: Si un proceso que est reteniendo
algunos recursos solicita otro recurso que no le puede ser asignado inmediatamente, entonces todos los recursos que actualmente son retenidos son apropiados (se liberan implcitamente).
BLOQUEOS
Prevencin de Bloqueos
PROTOCOLO ALTERNO: Si un proceso solicita algunos recursos, verificamos si estn disponibles; si es as se los asigna. Caso contrario verificamos si estn asignados a algn otro proceso que esta esperando recursos adicionales; de ser as el proceso solicitante se apropia de los recursos deseados.
BLOQUEOS
Prevencin de Bloqueos
4) Espera Circular: imponer un ordenamiento total de todos los tipos de recursos (numerarlos: impresora = 1, disco = 2, etc), y requerir que cada proceso solicite sus recursos en orden creciente de enumeracin ( ordenamiento jerrquico que obliga a anticipar el orden en que utilizara los recursos).
BLOQUEOS MUTUOS
Evitacin de Bloqueos Mutuos
Requiere que al SO se le de por adelantado informacin relacionada con los recursos que un proceso solicitar y usar durante su vida. Con esta informacin de la secuencia completa de solicitudes y liberaciones; podemos decidir para cada solicitud si el proceso tendr que esperar o no.
BLOQUEOS MUTUOS
Evitacin de Bloqueos Mutuos
El sistema debe tener la capacidad de distinguir si se puede otorgar sin peligro un recurso o no, y solo efectuar la asignacin si no hay peligro.
Hay algn algoritmo que siempre pueda evitar los bloqueos mutuos tomando la decisin correcta todo el tiempo?
BLOQUEOS MUTUOS
Evitacin de Bloqueos Mutuos
Veremos un algoritmo para la evitacin de Bloqueos Mutuos para un ambiente con solo una instancia de cada recurso. Podemos usar una variante de la grfica de asignacin de recursos.
BLOQUEOS MUTUOS
Evitacin de Bloqueos Mutuos
Adems de las aristas de solicitud y asignacin tenemos un nuevo tipo de aristas llamada: arista de demanda. Arista de demanda Pi Rj indica que el proceso Pi puede solicitar el recurso Rj en algn momento en el futuro; representada por una lnea punteada. Semejante a una arista de solicitud.
BLOQUEOS MUTUOS
Evitacin de Bloqueos Mutuos
Una arista de demanda se convierte en arista de solicitud cuando un proceso solicita un recurso. Cuando un recurso es liberado por un proceso, una arista de asignacin se convierte en arista de demanda.
Se requiere informacin adicional acerca de cmo van a ser requeridos los recursos. Con el conocimiento de la secuencia completa de requerimientos y liberaciones para cada proceso, el sistema, ante cada requerimiento, considera:
los recursos actualmente disponibles los recursos actualmente asignados a cada proceso los requerimientos y liberaciones futuras de cada proceso
para decidir si el requerimiento puede ser satisfecho, o el proceso debe esperar para evitar un posible bloqueo en el futuro.
Un sistema est en un estado seguro solo si existe una secuencia segura. Una secuencia de procesos <P1,P2,....,Pn> es segura si por cada Pi, los recursos que Pi puede an requerir, pueden ser satisfechos por los recursos actuales disponibles mas los recursos retenidos por todos los Pj con j<i Si la secuencia no existe, entonces se dice que el estado del sistema es inseguro. No todos los estados inseguros son bloqueos. Un estado inseguro puede conducir a un bloqueo. Mientras el estado sea seguro, el S.O. puede evitar estados inseguros.
Si para cada tipo de recurso existe solo una instancia, una variante del grafo de asignacin de recursos puede ser usada para la evitacin del bloqueo. La seguridad del sistema se chequea mediante un algoritmo que detecta ciclos en el grafo.
El algoritmo del grafo de asignacin de recursos no es aplicable a un sistema de asignacin de recursos con mltiples instancias para cada tipo de recurso. En estos casos, para evitar el bloqueo se aplica un algoritmo conocido como el algoritmo del banquero. Cuando un proceso entra al sistema, debe declarar el mximo nmero de instancias de cada tipo de recurso que pueda necesitar. Cuando un proceso solicita un conjunto de recursos, el sistema debe determinar si la asignacin de esos recursos dejar al sistema en un estado seguro.
BLOQUEOS MUTUOS
Grfica de Asignacin de Recursos para Evitacin de Bloqueos Mutuos
BLOQUEOS MUTUOS
Grfica de Asignacin de Recursos para Evitacin de Bloqueos Mutuos
Una solicitud solo puede atenderse si la conversin de la arista de solicitud Pi Rj en una arista de asignacin Rj Pi no da como resultado un ciclo en la grfica. Se utiliza un algoritmo de deteccin de ciclos.
BLOQUEOS MUTUOS
Grfica de Asignacin de Recursos para Evitacin de Bloqueos Mutuos
Si no existe un ciclo, entonces la asignacin del recurso al Pi dejar al sistema en un estado seguro. Si existe al menos un ciclo el sistema estar en un estado inseguro; y por lo tanto la asignacin al Pi no podr realizarse.
BLOQUEOS MUTUOS
Estado Inseguro en Grfica de Asignacin de Recursos
BLOQUEOS MUTUOS
Deteccin de Bloqueos Mutuos
Permitir al sistema entrar en estado de bloqueo mutuo y luego recuperarlo 1)Algoritmo de Deteccin 2)Esquema de Recuperacin
BLOQUEOS MUTUOS
Deteccin de Bloqueos Mutuos
Veremos un algoritmo para un ambiente con solo una instancia de cada recurso. Este esquema de deteccin y recuperacin implica un gasto extra (overhead). Este algoritmo es una variante de la grfica de asignacin de recursos llamado: grfica de espera
BLOQUEOS MUTUOS
Deteccin de Bloqueos Mutuos
Para esta grfica se quitan los nodos de tipo de recurso y se desintegran las aristas apropiadas. Ejemplo Pi Rq y Rq Pj el resultado ser: Pi Pj
BLOQUEOS MUTUOS
Deteccin de Bloqueos Mutuos
Existe un Bloqueo Mutuo si la grfica de espera tiene un ciclo. Se necesita invocar un algoritmo que busque un ciclo en la grfica.
BLOQUEOS MUTUOS
Deteccin de Bloqueos Mutuos
BLOQUEOS MUTUOS
Recuperacin de un estado de Bloqueo Mutuo
BLOQUEOS MUTUOS
Recuperacin de un estado de Bloqueo Mutuo
1) Terminacin de procesos
a) Abortar todos los procesos bloqueados : alto costo, resultados parciales descartados. b) Abortar un proceso cada vez hasta que el ciclo de bloqueo sea eliminado: Gasto extra; ya q despus de abortar a cada proceso se debe invocar un algoritmo de deteccin de Bloqueo Mutuo.
BLOQUEOS MUTUOS
Recuperacin de un estado de Bloqueo Mutuo
2) Apropiacin de recursos
a) Seleccionar una victima: Que recursos y de que procesos se van a apropiar b) Retroceso: Regresar a los procesos a los q se les quito los recursos a un estado seguro. Se puede dar un retroceso total o parcial c) Inanicin: Garantizar que no siempre el mismo proceso ser la victima. Incluir los retrocesos en el factor costo.