Está en la página 1de 50

UNIVERSIDAD SEÑOR DE SIPÁN Facultad de Ingeniería Arquitectura y

Urbanismo Escuela Profesional de Ingeniería de Sistemas

CURSO:

Sistemas Operativos

TEMA:

BLOQUEOS

BLOQUEOS

BLOQUEOS

BLOQUEOS

Entorno

pueden competir por un número finito de recursos Procesos esperando recursos; nunca cambiaran de estado.

procesos

multiprogramación

Varios

BLOQUEOS

Una carencia de sincronización de procesos puede dar lugar a dos condiciones extremas:

El bloqueo mutuo (abrazo mortal) La inanición

BLOQUEOS

Proceso solicita un recurso

No está disponible Espera

Puede que no cambie de estado Los recursos

solicitados están en manos de otros procesos que

también están en espera (Interbloqueo)

Problema

similar

Inanición,

aplazamiento

indefinido o bloqueo indefinido

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 ejemplares

dos CPU, se dice que tiene dos

BLOQUEOS - EJEMPLO

Suponga que dos procesos quieren quemar un documento digitalizado en un CD.

Proceso A solicita autorización para usar el escáner y se le

concede.

Proceso B solicita primero el quemador de CD y también se le

concede.

Ahora A, pide el quemador de CD, pero se le niega porque B

no lo ha liberado

B solicita el escáner, pero sin liberar el quemador de CD.

PROCESOS A Y B ESTÁN BLOQUEADOS

BLOQUEOS

Condiciones Necesarias

Solicitud

Uso

Liberación

Llamadas al Sistema

El recurso no está disponible cuando se solicita

El proceso solicitante debe esperar

En algunos S.O el proceso se bloquea automáticamente y

despierta cuando dicho recurso esté disponible

La solicitud falla y el proceso debe esperar para pedir el

recurso.

BLOQUEOS

Solicitud y liberación llamadas al sistema:

request, release, device, open, entre otras.

No son administradas por el SO pueden hacerse mediante semáforos.

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 poseído por otro proceso del

conjunto.

BLOQUEOS

Caracterización de B.M.

Exclusión Mutua

Sólo un proceso podrá usar el recurso. Recurso retenido no

compatible.

Retener y esperar

Cuando

los

procesos

que

tienen

otorgados solicitan otros recursos.

recursos

previamente

No apropiación

Un recurso no puede ser arrebatado a otro proceso, solo lo

libera voluntariamente.

BLOQUEOS

Caracterización de B.M.

Espera circular

Debe existir un conjunto {P 0 ,P 1

que P 0 está esperando un recurso que fué adquirido por P 1 , P 1 está esperando un recurso que fué adquirido por

P n-1 está esperando un proceso que fué adquirido

por P n y P n está esperando un recurso que fué adquirido por

P 0

,P

n } de procesos en espera tal

P

2 ,

,

BLOQUEOS

Gráfica Asignación de Recursos

Grafos de Asignación de Recursos

de Recursos  Grafos de Asignación de Recursos  Nodos  Procesos y Recursos  Arcos
de Recursos  Grafos de Asignación de Recursos  Nodos  Procesos y Recursos  Arcos
de Recursos  Grafos de Asignación de Recursos  Nodos  Procesos y Recursos  Arcos

Nodos Procesos y Recursos

Arcos De un proceso a un recurso Solicitud

De un recurso a un proceso Asignación

Ciclos Indica la existencia de un bloqueo

BLOQUEOS

Gráfica Asignación de Recursos

Un conjunto de vértices 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 petición arista dirigida P1 Rj

Arista de asignación arista dirigida Rj Pi

BLOQUEOS

Gráfica Asignación de Recursos

BLOQUEOS Gráfica Asignación de Recursos

BLOQUEOS

Gráfica Asignación de Recursos

CICLOS

a)

Si la gráfica no contiene ciclos; no hay BM

b)

Si hay un ciclo y una sola instancia de cada recurso, condición suficiente para BM.

c)

Varios ciclos BM.

EJEMPLOS:

BLOQUEOS

Gráfica Asignación de Recursos

BLOQUEOS Gráfica Asignación de Recursos

BLOQUEOS

Gráfica Asignación de Recursos

BLOQUEOS Gráfica Asignación de Recursos

BLOQUEOS

Gráfica Asignación de Recursos

BLOQUEOS Gráfica Asignación 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 recuperación.

3) Podemos ignorar el problema y pretender que los

bloqueos mutuos nunca ocurren en el sistema; usado por la

mayoría de los sistemas operativos, incluyendo a UNIX.

BLOQUEOS

Estrategias para enfrentar los Bloqueos

Para asegurarnos que nunca ocurra un BM podemos usa estrategias de:

1)

2)

Prevención de BM Evitación de BM

Prevención de BM Evitación de BM

BLOQUEOS

Prevención de Bloqueos

Lograr que al menos unos de las 4 condiciones no se cumpla.

Exclusión Mutua: Generalmente no es posible

1)

prevenir BM negando esta condición. Ejm.

Recursos que no puedan compartirse (memoria,

CPU, o dispositivos dedicados).

BLOQUEOS

Prevención de Bloqueos

1) Exclusión Mutua: No es problema con recursos que se puedan compartir (archivos de sólo lectura).

2) Retener y Esperar: debemos garantizar que, siempre que un proceso solicite un recurso no retenga algún

otro.

BLOQUEOS

Prevención de Bloqueos

2) Retener y Esperar

PROTOCOLO1: Requiere que cada proceso y se le

asignen todos sus recursos antes de iniciar su ejecución ( en

el momento de la creación ).

PROTOCOLO2: Permitir que un proceso solicite recursos sólo cuando no tenga alguno.

BLOQUEOS

Prevención de Bloqueos

DESVENTAJAS:

1) Baja utilización de recursos.

2) Posibilidad de inanición.

BLOQUEOS

Prevención de Bloqueos

3) No Apropiación: Para asegurarnos que no se cumpla esta condición 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

implícitamente).

BLOQUEOS

Prevención de Bloqueos

PROTOCOLO ALTERNO: Si un proceso solicita algunos recursos, verificamos si están disponibles; si

es así se los asigna.

Caso contrario verificamos si están asignados a algún otro proceso que esta esperando recursos

adicionales; de ser así el proceso solicitante se

apropia de los recursos deseados.

BLOQUEOS

Prevención de Bloqueos

4) Espera Circular:

de todos los tipos

imponer un ordenamiento total

de recursos (numerarlos: impresora = 1, disco = 2, etc), y requerir que cada proceso solicite sus recursos en orden creciente de enumeración (

ordenamiento jerárquico que obliga a anticipar el

orden en que utilizara los recursos).

BLOQUEOS MUTUOS

Evitación de Bloqueos Mutuos

Requiere que

por adelantado

información relacionada con los recursos que un

proceso solicitará y usará durante su vida.

al

SO

le

de

se

Con esta información de la secuencia completa de solicitudes y liberaciones; podemos decidir para

cada solicitud si el proceso tendrá que esperar o

no.

BLOQUEOS MUTUOS

Evitación 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 asignación si no hay peligro.

¿Hay algún algoritmo que siempre pueda evitar los bloqueos mutuos tomando la decisión correcta todo el

tiempo?

BLOQUEOS MUTUOS

Evitación de Bloqueos Mutuos

Veremos

de

Bloqueos Mutuos para un ambiente con solo una

algoritmo

la

evitación

un

para

instancia de cada recurso.

una asignación de recursos.

Podemos

variante

usar

de

la

gráfica

de

BLOQUEOS MUTUOS

Evitación de Bloqueos Mutuos

Además de las aristas de solicitud y asignación 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 algún momento en el

futuro; representada por una línea punteada.

Semejante a una arista de solicitud.

BLOQUEOS MUTUOS

Evitación 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 asignación se convierte en arista de demanda.

BLOQUEOS MUTUOS Evitación de Bloqueos Mutuos

Se requiere información adicional acerca de cómo 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 Evitación de Bloqueos Mutuos

Los algoritmos de evitación de bloqueo difieren en la cantidad y tipo de información que requieren. El modelo más simple y útil requiere que cada proceso declare el máximo número de recursos de cada tipo que puede necesitar. Con esta información el algoritmo asegura que el sistema nunca entrará en un estado de bloqueo. Un algoritmo de evitación de bloqueo examina dinámicamente el estado de asignación de recursos para asegurar de que nunca

puede hacer una condición de espera circular.

El estado de asignación de los recursos está definido por el número de recursos disponibles y asignados, y las máximas demandas de los procesos.

BLOQUEOS MUTUOS Evitación 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 aún 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 Evitación de Bloqueos Mutuos

Algoritmo del grafo de asignación de recursos

Si para cada tipo de recurso existe solo una

instancia, una variante del grafo de asignación de

recursos puede ser usada para la evitación del bloqueo.

La seguridad del sistema se chequea mediante un algoritmo que detecta ciclos en el grafo.

BLOQUEOS MUTUOS Evitación de Bloqueos Mutuos

Algoritmo del banquero

El algoritmo del grafo de asignación de recursos no es aplicable a un sistema de asignación de recursos con múltiples 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

máximo número de instancias de cada tipo de recurso que

pueda necesitar.

Cuando un proceso solicita un conjunto de recursos, el

sistema debe determinar si la asignación de esos recursos

dejará al sistema en un estado seguro.

BLOQUEOS MUTUOS

Gráfica de Asignación de Recursos para Evitación de Bloqueos Mutuos

BLOQUEOS MUTUOS Gráfica de Asignación de Recursos para Evitación de Bloqueos Mutuos

BLOQUEOS MUTUOS

Gráfica de Asignación de Recursos para Evitación de Bloqueos Mutuos

Una solicitud solo puede atenderse si la conversión de la arista de solicitud Pi Rj en una arista de

asignación Rj Pi no da como resultado un ciclo en

la gráfica. Se utiliza un algoritmo de detección de ciclos.

Rj Pi no da como resultado un ciclo en la gráfica.  Se utiliza un algoritmo

BLOQUEOS MUTUOS

Gráfica de Asignación de Recursos para Evitación de Bloqueos Mutuos

Si

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 asignación al Pi no podrá realizarse.

no existe

un ciclo, entonces la asignación del

BLOQUEOS MUTUOS

Estado Inseguro en Gráfica de Asignación de Recursos

BLOQUEOS MUTUOS Estado Inseguro en Gráfica de Asignación de Recursos

BLOQUEOS MUTUOS

Detección de Bloqueos Mutuos

Permitir al sistema entrar en estado de bloqueo mutuo y luego recuperarlo

1)Algoritmo de Detección

2)Esquema de Recuperación

BLOQUEOS MUTUOS

Detección de Bloqueos Mutuos

Veremos un algoritmo para un ambiente con solo una instancia de cada recurso.

Este esquema de detección y recuperación implica un gasto extra (overhead). Este algoritmo es una variante de la gráfica de asignación de recursos llamado: gráfica de espera

BLOQUEOS MUTUOS

Detección de Bloqueos Mutuos

Para esta gráfica se quitan los nodos de tipo de recurso y se desintegran las aristas apropiadas.

Ejemplo

Pi

Pi

Rq y Rq Pj

Pj

nodos de tipo de recurso y se desintegran las aristas apropiadas. Ejemplo  Pi  Pi

el resultado será:

BLOQUEOS MUTUOS

Detección de Bloqueos Mutuos

Existe un Bloqueo Mutuo si la gráfica de espera tiene un ciclo. Se necesita invocar un algoritmo que busque un ciclo en la gráfica.

BLOQUEOS MUTUOS

Detección de Bloqueos Mutuos

BLOQUEOS MUTUOS Detección de Bloqueos Mutuos

BLOQUEOS MUTUOS

Recuperación de un estado de Bloqueo Mutuo

1) Terminación de procesos

2) Apropiación de recursos

BLOQUEOS MUTUOS

Recuperación de un estado de Bloqueo Mutuo

1) Terminación 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 después de abortar a cada proceso se

debe invocar un algoritmo de detección de Bloqueo Mutuo.

BLOQUEOS MUTUOS

Recuperación de un estado de Bloqueo Mutuo

2) Apropiación 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) Inanición:

Garantizar que no siempre el mismo proceso será la victima.

Incluir los retrocesos en el factor costo.