Sie sind auf Seite 1von 19

BLOQUEOS IRREVERSIBLES O INTERBLOQUEOS

SISTEMAS OPERATIVOS I
ING. Edgardo Cervantes Manzano

Supongamos que dos procesos quieren grabar un documento digitalizado en un CD. El proceso A se solicita autorizacin para usar el escner y se le concede. El proceso B esta programado de manera distinta y solicita la grabadora de CD primero y tambin se le concede. Ahora A solicita la grabadora de CD pero se le niega porque B no la ha liberado. B en lugar de liberar a la grabadora de CD, solicita el escner, Ahora ambos procesos estn bloqueados y seguirn por tiempo indefinido. Esto origina un bloqueo irreversible

Bloqueo irreversible o interbloqueos

Interbloqueos en las bases de datos En Sistema de BD. Un programa puede verse obligado a bloquear varios registros que ste usando para evitar condiciones de competencia . Si el proceso A bloquea el registro E1 y el proceso B bloquea el registro E2 y luego cada uno de estos procesos bloquea el registro del otro, ocurrir un bloqueo irreversible (hardware y software)

Recursos expropiables y no expropiables

Expropiable es uno que se le puede quitar al proceso que lo tiene sin causar daos (memoria). Ejemplo: 32 MB de memoria de usuario, una impresora y dos procesos de 32 MB que quieren imprimir algo, el proceso A solicita y obtiene la impresora, hace calculos que imprimir, antes de terminar el calculo el proceso excede rebanada de tiempo y es intercambiado a disco. Mientras el proceso B trata sin xito de adquirir la impresora. Esto es un bloqueo irreversible porque A tiene la impresora y B tiene la memoria. Ninguno puede avanzar sin el recurso que tiene el otro. Es posible quitarle a B memoria intercambiando a disco. A puede ejecutarse e imprimir.(no hay bloqueo)

Recursos expropiables y no expropiables

Un recurso no expropiable.- no se puede quitar al actual dueo sin hacer que el sistema de computo falle. Si se ha empezado a quemar un Cd y de repente se le quita la grabadora, para darsela a otro proceso el CD quedar inservible. Las grabadoras no pueden expropiarse en forma arbitraria.

Modelo de sistema (instancias) El sistema consta de un nmero finito de recursos, estos recursos se dividen en varios tipos, constando cada uno de ellos de un cierto nmero de instancias. El espacio de memoria, los archivos y los dispositivos de E/S ( Impresoras y DVDs). Si un sistema tiene 2 CPUs entonces el tipo de recurso tiene dos instancias, el tipo de impresora puede tener cinco instancias distintas.(checar colocacin de las impresoras)

Uso normal de un recurso


1 Solicitud.(La solicitud no puede ser concedida inmediatamente). 2 Uso. (El proceso opera sobre el recurso) 3 Liberacin (El proceso libera recurso). La solicitud y la liberacin son llamadas al sistema. Ejemplos: [request( ) y relese( )] [open( ) y close( )] [allocate( ) y free( )] La solicitud y liberacin de los recursos que el SO no gestiona se hacen con operaciones wait y signal de los semforos o a travs de un mutex.

Continua Uso normal

Cada vez que un proceso o una hebra (subproceso) emplea un recurso gestionado por el Kernel, el SO comprueba que el proceso ha solicitado el recurso y que ste ha sido asignado a dicho proceso. Una tabla del sistema registra si cada recurso esta libre o ha sido asignado, si ha sido asignado la tabla registra el proceso,

Secuencia de uso de un recurso Solicitar el recurso (no disponible, espera) Bloquea automtico, se activa cuando esta disponible). Usar el recurso Liberar el recurso Los recursos pueden asociarse a un semaforo o mutexes

Semforo para dos recursos


typedef int semaforo; semaforo recurso_1; semaforo recurso_2; void proceso_A(void) { down(&recurso_1); down(&recurso_2); usar_ambos_recursos( ); up(&recurso_2); up(&recurso_1); }

Si se requieren mas recursos simplemente se obtiene uno tras otro

Codigo con y sin bloqueos irreversibles


typedef int semaforo; semaforo recurso_1; semaforo recurso_2 void proceso_A(void) { down(&recurso_1); down(&recurso_2); usar_ambos_recursos( ); up(&recurso_2); up(&recurso_1); } void proceso_B(void) { down(&recurso_1); down(&recurso_2); usar_ambos_recursos( ); up(&recurso_2); up(&recurso_1); } (a) Codigo sin bloqueos irreversibles semaforo recurso_1; semaforo recurso_2 void proceso_A(void) { down(&recurso_1); down(&recurso_2); usar_ambos_recursos( ); up(&recurso_2); up(&recurso_1); void proceso_B() { down(&recurso_2); down(&recurso_1); usar_ambos_recursos( ); up(&recurso_1); up(&recurso_2); } (b) Codigo con un bloqueo irrevesrsible potencial

Definicion Formal

Un conjunto de procesos cae en bloqueo irreversible si cada proceso del conjunto esta esperando un suceso que solo otro proceso del conjunto puede causar.

Condiciones de bloqueo Irreversible Deben existir 4 condiciones. Condicin de exclusin mutua.( recurso asignado o disponible). Condicin de retencin o Espera (los P. tiene R asignados y pueden solicitar nuevos). Condicin de no Expropiacin (no arrebatarse, liberacion explicita) Condicin de espera circular (cadena circular de dos o ms recursos.

Modelado de bloqueos Irreversibles


A S T R p.r. B s.r. C Bloqueo Irreversible C-T-D-U-C D U

Tipos de nodos Circulo = procesos Recursos= cuadrados

Holt (1972) mostro como pueden modelarse estas 4 condiciones usando grafos dirigidos

Estrategia para B.I.

Existen 4 estrategias: Simplemente Ignorar el problema. Deteccin y recuperacin Evitacin dinmica mediante asignacin cuidadosa de registros. Prevencin anulando en forma estructural una de las 4 condiciones para un B.I.

Algoritmo del avestruz Meter la cabeza en la arena y hacer como si no existiera problema.
Matemticos (B.I. deben prevenirse a toda costa) Ingenieros (que frecuencia y gravedad y cual es el promedio frecuencia 1 vez semanalmente).

Deteccin de bloqueos irreversibles


Algoritmo basado en matrices para detectar BI entre n procesos, p1 a pn m es nmero de clases de recursos. Con E1recursos de la clase 1, E2 recursos de la clase 2, Ei recursos de la clase i(1<=i<=m) .

E es el vector de recursos existentes y da el total de

instancias de cada recurso existente ejem: si la clase 1 corresponde a unidades de cinta E1=2 implica que el sistema tiene 2 unidades de cinta. En cualquier momento dado los recursos estn disponibles y no disponibles. Vector A de recursos disponibles donde A1 es el nmero de instancias de recurso i que estn disponibles (no asignadas)

Continua deteccin BI. Necesitamos dos arreglos: C la matriz de asignacin y R la matriz de solicitudes la i-esima fila de C nos dice cuantas instancias de cada recurso tiene en la actualidad Pi. As Cij es el nmero de instancias del recurso j que estn en manos del proceso i. Igualmente Rij es el nmero de instancias del j que quiere Pi Estas 4 estructuras se muestran en seguida:

RECURSOS EN EXISTENCIA

RECURSOS DISPONIBLES

(E1, E2, E3..Em)


Matriz c11 c21 . . cn1 de asignacin actual c12 c13.c1m c22 c23.c2m cn2 cn3cnm

(A1, A2 , A3.Am)
Matriz de solicitudes