Está en la página 1de 50

UNIVERSIDAD SEOR DE SIPN Facultad de Ingeniera Arquitectura y Urbanismo Escuela Profesional de Ingeniera de Sistemas

CURSO: Sistemas Operativos

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)

Problema similar Inanicin, indefinido o bloqueo indefinido

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.

PROCESOS A Y B ESTN BLOQUEADOS

BLOQUEOS
Condiciones Necesarias

Solicitud Uso Liberacin

Llamadas al Sistema

El recurso no est disponible cuando se solicita El proceso solicitante debe esperar

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.

BLOQUEOS Caracterizacin de B.M.

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.

BLOQUEOS Caracterizacin de B.M.

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

Grafos de 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

Un conjunto de vrtices V y un conjunto de aristas dirigidas E.


V es particionado en dos tipos: P = {P1, P2, , Pn}, el conjunto consistente de todos los procesos en el sistema. R = {R1, R2, , Rm}, el conjunto consistente de todos los tipos de recursos en el sistema. Arista de peticin arista dirigida P1 Rj Arista de asignacin arista dirigida Rj Pi

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

1) Exclusin Mutua: No es problema con recursos que


se puedan compartir (archivos de slo lectura).

2) Retener y Esperar: debemos garantizar que, siempre


que un proceso solicite un recurso no retenga algn otro.

BLOQUEOS
Prevencin de Bloqueos

2) Retener y Esperar PROTOCOLO1: Requiere que cada proceso y se le


asignen todos sus recursos antes de iniciar su ejecucin ( en el momento de la creacin ).

PROTOCOLO2: Permitir que un proceso solicite recursos


slo cuando no tenga alguno.

BLOQUEOS
Prevencin de Bloqueos

DESVENTAJAS: 1) Baja utilizacin de recursos. 2) Posibilidad de inanicin.

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.

BLOQUEOS MUTUOS Evitacin de Bloqueos Mutuos


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.

BLOQUEOS MUTUOS Evitacin de Bloqueos Mutuos


Los algoritmos de evitacin de bloqueo difieren en la cantidad y tipo de informacin que requieren. El modelo ms simple y til requiere que cada proceso declare el mximo nmero de recursos de cada tipo que puede necesitar. Con esta informacin el algoritmo asegura que el sistema nunca entrar en un estado de bloqueo. Un algoritmo de evitacin de bloqueo examina dinmicamente el estado de asignacin de recursos para asegurar de que nunca puede hacer una condicin de espera circular. El estado de asignacin de los recursos est definido por el nmero de recursos disponibles y asignados, y las mximas demandas de los procesos.

BLOQUEOS MUTUOS Evitacin de Bloqueos Mutuos


Estado seguro:

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.

BLOQUEOS MUTUOS Evitacin de Bloqueos Mutuos


Algoritmo del grafo de asignacin de recursos

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.

BLOQUEOS MUTUOS Evitacin de Bloqueos Mutuos


Algoritmo del banquero

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

1) Terminacin de procesos 2) Apropiacin de recursos

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.

También podría gustarte