Está en la página 1de 15

Universidad Autnoma San Sebastin

Bloqueos

Trabajo Prctico Carpeta Exposicin

Universidad Autnoma San Sebastin

Bloqueos

ndice

Universidad Autnoma San Sebastin

Bloqueos

Introduccin

En los sistemas operativos multiprogramados surge el concepto de proceso, asociado a la ejecucin de un programa. En general, un proceso es un flujo de ejecucin, representado bsicamente por un contador de programa, y su contexto de ejecucin, que puede ser ms o menos amplio. Dichos procesos estn en estado de "DEADLOCK o BLOQUEO" cuando cada proceso del conjunto est esperando por un evento que solo puede ser causado por otro proceso que est dentro de ese conjunto. En este material veremos en que caso se produce un bloqueo o interbloqueo y de como prevenir o saber cuando existe un bloqueo.

Universidad Autnoma San Sebastin

Bloqueos

Bloqueos en Sistemas Operativos.

1.

Bloqueo / Interbloqueos.

Un Sistema est en Bloqueo cuando uno o ms procesos estn esperando un evento que no a suceder. Es una situacin en la cual uno o ms procesos estn bloqueados como consecuencia de que cada proceso tiene retenido un subconjunto de los recursos restantes retenidos por otros procesos del mismo grupo. Ejemplo: Trafico de automviles. Cuando se da el bloqueo, el trafico se detiene completamente, para resolver este problema, algn(os) carros deben regresar sobre lo avanzado para permitir que los otros puedan avanzar. En Donde: Se presenta en sistemas multiprogramados. Se presenta cuando los recursos son compartidos y por consiguiente no son suficientes.

2.

Interbloqueo.

El interbloqueo es una anomala que puede ocurrir durante la ejecucin de procesos concurrentes debido a la competencia por los recursos. Si bien es cierto que prcticamente ningn sistema operativo real incorpora mecanismos de tratamiento de interbloqueo, esto es debido a una cuestin de la prdida de rendimiento que conlleva su tratamiento para la baja probabilidad que hay de que ocurra. En un sistema operativo ideal, sin embargo, s deberan incluirse mecanismos para su tratamiento, dado que existen y son bien conocidos.

3.

Conceptos de Recursos

Si un programa enva lneas a una impresora, en realidad son enviadas a un dispositivo ms rpido (disco). Se almacenan temporalmente hasta ser impresas.

Universidad Autnoma San Sebastin

Bloqueos

Varios trabajos en ejecucin que generan lneas de spool pueden interbloquearse si el espacio disponible se llena antes de completarse alguno de estos trabajos: Se reduce la probabilidad de interbloqueos del spool: Proporcionando un espacio en disco considerablemente mayor que el necesario, preferentemente con asignacin dinmica. Limitando los spoolers de entrada para que no lean ms trabajos cuando los archivos de spool llegan a cierto nivel de saturacin. Un problema relacionado: postergacin indefinida: Es posible que un proceso sea postergado indefinidamente en tanto que otros reciben la atencin del sistema: Se trata de la postergacin indefinida. Cuando los recursos son planificados en funcin de prioridades, un proceso dado puede esperar indefinidamente, mientras sigan llegando procesos de prioridades mayores. En algunos sistemas, la postergacin indefinida se evita al permitir que la prioridad de un proceso aumente mientras espera por un recurso; a esto se llama envejecimiento.

4.

Bloqueo / Interbloqueo y gestin de recursos

Otro de los campos tpicos donde se presenta el problema del interbloqueo es en la gestin de recursos. En este caso varios de los procesos que se ejecutan concurrentemente en el sistema (procesos probablemente independientes entre s) compiten por el uso de recursos no compartibles, de tal manera que hasta que el proceso que tiene asignado el recurso no lo libere ningn otro podr utilizarlo. Si otro proceso necesita utilizarlo para continuar su trabajo, lo tpico que ocurre es que este proceso suspende su ejecucin hasta que el que ocupa el recurso lo libera. En este contexto el interbloqueo se produce cuando los procesos suspendidos retienen recursos que son necesarios para la continuacin de otros procesos, que a su vez retienen los recursos que necesitan los primeros. En definitiva, el problema se debe a que se han asignado los recursos que han ido necesitando los procesos sin ningn criterio, sumado al propio comportamiento de los procesos. Este tipo de interbloqueo no se da nicamente en los sistemas operativos. Es muy tpico tambin en los sistemas de gestin de bases de datos, por ejemplo, donde los recursos son registros o tablas de una base de datos que los procesos bloquean mientras los manejan si precisan de un acceso exclusivo. Esta clase de interbloqueo est perfectamente estudiado y puede tratarse sin demasiada dificultad utilizando distintas tcnicas, clasificadas normalmente en tres categoras: prevencin, evitacin y deteccin y recuperacin. El problema que tienen estas tcnicas es que

Universidad Autnoma San Sebastin

Bloqueos

sacrifican algo a cambio de solucionar el interbloqueo (la asignacin de recursos ser ms lenta, al tener que comprobar si se puede permitir; se exige seguir una serie de normas a los procesos a la hora de solicitar recursos; etc.) Este es el motivo de que no se suelan apenas utilizar en sistemas reales. Pero en cualquier caso es un problema muy interesante de gestin de recursos que debe explicarse dentro del tema de Sistemas Operativos

5.

Caracterizacin de Bloqueos

Exclusin Mutua: solo un proceso a la vez puede usar un recurso. Retener y Esperar: un proceso mantiene al menos un recurso y est esperando adquirir recursos adicionales tenidos por otros procesos. No Apropiacin: Un recurso puede ser liberado solo voluntariamente por el proceso que lo tiene, despus que el proceso ha completado su tarea. Espera Circular: existe un conjunto {P0, P1, , P0} de procesos esperando tal que P0 est esperando por un recurso que es retenido por P1, P1 est esperando por un recurso que es retenido por P2, , Pn1 est esperando por un recurso que es retenido por Pn, y P0 est esperando por un recurso que es retenido por P0.

6.

Mtodos para Manejo de bloqueos


Asegure que el sistema no entrar nunca estado de interbloqueo. Permitir al sistema entrar en un estado de interbloqueo y luego recuperarse. Ignore el problema y pretenda que el interbloqueo nunca ocurri en el sistema; usado en la mayora de los sistemas operativos incluido UNIX.

7.

Estrategias para Manejo de Interbloqueos

Las estrategias utilizadas para atacar el problema de interbloqueos se establecen en tres niveles de accin: antes que suceda, cuando los procesos estn corriendo o con hechos consumados. Estas estrategias son: - Prevencin - Evasin - Deteccin

Universidad Autnoma San Sebastin

Bloqueos

8.

Prevencin de Interbloqueos
Exclusin Mutua no requerido para recursos compartidos; debe mantenerse para recursos no compartidos. Mantener y Esperar debe garantizar que siempre que un proceso requiera un recurso no mantiene otros. - Un proceso debe requerir y alocar todos sus recursos antes que comience su ejecucin, o permitir a los procesos requerir recursos solo cuando no tenga ninguno. - Baja utilizacin de recursos; es posible inanicin. Restringir los modos en que se pueden hacer los requerimientos. No Apropiacin - Si un proceso que mantiene algunos recursos requiere otro recurso, no le puede ser inmediatamente alocado, entonces todos los recursos mantenidos son liberados. Los recursos apropiados son agregados a la lista de recursos por los cuales el proceso est esperando. - El proceso se reiniciar solo cuando pueda reganar sus viejos recursos, tanto como los nuevos que est requiriendo. Espera Circular impone un orden total de todos los tipos de recursos, y requiere que cada proceso requiera recursos en un orden creciente de enumeracin.

9.

Crculo Vicioso de Espera

La condicin del crculo vicioso de espera puede prevenirse definiendo una ordenacin lineal de los tipos de recursos. Si a un proceso se le han asignado recursos de tipo R, entonces slo podr realizar peticiones posteriores sobre los recursos de los tipos siguientes a R en la ordenacin. Para comprobar el funcionamiento de esta estrategia, se asocia un ndice a cada tipo de recurso. En tal caso, el recurso R, antecede a R, en la ordenacin si i < j. Entonces, supngase que dos procesos A y B se interbloquean, porque A ha adquirido R, y solicitado R y, mientras que B ha adquirido R; y solicitado R. Esta situacin es imposible porque implica que < j y j < i. Como en la retencin y espera, la prevencin del crculo vicioso de espera puede ser ineficiente, retardando procesos y denegando accesos a recursos.

Universidad Autnoma San Sebastin

Bloqueos

10.

Recuperacin del bloqueo:

Se utiliza para despejar bloqueos de un sistema para que: Contine operando sin ellos. Terminen los procesos estancados. Se liberen los recursos correspondientes a ellos. Generalmente se logra extrayendo (cancelando) a uno o varios de los procesos bloqueados, que se reinician luego de forma normal.

11.

El Algoritmo del Avestruz o de Ostrich

El punto de vista ms simple es pretender que no existe el problema Esta estrategia puede generar distintas reacciones: Matemticamente es inaceptable, considerndose que los bloqueos deben evitarse a toda costa. Desde la ingeniera de software podra considerarse cul es la frecuencia esperada del problema, cules son sus consecuencias esperadas, cules son las frecuencias esperadas de fallas de otro tipo, etc. Algunos S. O. soportan potencialmente bloqueos que ni siquiera se detectan, ya que se rompen automticamente.

12.

Algoritmos para evitar interbloqueos

Demorar las asignaciones que, aun pudiendo efectuarse por haber recursos disponibles, llevaran al sistema a un estado inseguro. Para cada asignacin que se plantee: Existen recursos libres para efectuarla? - NO: el proceso espera. - S: simular que se realiza la asignacin. El estado resultante es seguro? - NO: el proceso espera. - S: el proceso obtiene los recursos. Se necesita un algoritmo para determinar si un estado es seguro (algoritmo de seguridad).

Universidad Autnoma San Sebastin

Bloqueos

Qu pasa si P3 solicita un nuevo ejemplar? Aunque hay ejemplares libres, antes de asignar hay que verificar el estado al que se llegara:

Sera un estado inseguro, desde el que P1 y P3 podran llegar a bloquearse mutuamente. Por tanto, P3 tiene que esperar.

13.

Algoritmos de seguridad

Se trata de ver si existe una secuencia segura para un estado determinado. Si slo existe 1 ejemplar de cada recurso: Deteccin de ciclos sobre grafos de asignacin con flechas de reserva (de puntos), que indican que un proceso puede solicitar un determinado recurso. - Para simular que se atiende una solicitud, se cambian las flechas de reserva correspondientes por flechas de asignacin. - Si aparecen ciclos, el estado es inseguro. - Complejidad O (n2), con n el nmero de procesos. Si existe ms de 1 ejemplar de algn recurso: algoritmo del banquero. Analoga: nunca asignar efectivo disponible si hay riesgo de no poder satisfacer las necesidades de todos los clientes. Esencialmente el mismo procedimiento que en la deteccin de ciclos, pero sobre una representacin matricial. Complejidad O(mn2), con m el nmero de recursos y n el nmero de procesos.

14.

Algoritmo del banquero

Vectores de longitud m: Libres[j] = nmero de ejemplares no asignados del recurso R (j). Mxima r[j] = nmero mximo de ejemplares del recurso R (j) que puede necesitar simultneamente el proceso P (k). Asignacin k[j] = nmero de ejemplares del recurso Rj que tiene asignados el proceso P (k).

Universidad Autnoma San Sebastin

Bloqueos

Solicitud k[j] = nmero de ejemplares del recurso R (j) que solicita el proceso P (k). Conceder una solicitud implica: Libres = Libres Solicitud k Asignacin k = Asignacin k + Solicitud k La verificacin del estado trata de construir una secuencia segura. En evasin simulamos el caso peor Solicitud k = Mxima k Asignacin k. El vector Disponibles, de longitud m, acumular los recursos libres y los asignados a los procesos anteriores en la secuencia segura. El vector Incluido, de n componentes booleanas, indicar si los distintos procesos ya se han incluido en la secuencia segura. Procedimiento: Disponibles = Libres Incluido = ,falso, falso, , falso Repetir por siempre: Buscar k tal que - (Incluido[k] = falso) Y - (Solicitud k*j+ Disponibles*j+, 1jm) Si existe ese k, entonces - Incluido[k] = verdadero - Disponibles = Disponibles + Asignacin k Si no, salir del bucle Si existe k tal que Incluido[k] =falso, el estado es inseguro. En caso contrario, es seguro.

15.

Recuperacin Frente a un Bloqueo

Violar la exclusin mutua y asignar el recurso a varios procesos Cancelar los procesos suficientes para romper la espera circular Desalojar recursos de los procesos en bloqueo. Para eliminar un bloqueo matando procesos pueden usarse dos mtodos: - Matar todos los procesos en estado de bloqueo. Elimina el bloqueo pero a un muy alto costo. - Matar de a un proceso por vez hasta eliminar el ciclo. Este mtodo requiere considerable overhead ya que por cada proceso que vamos eliminando se debe re ejecutar el algoritmo de deteccin para verificar si el deadlock efectivamente desapareci o no.

10

Universidad Autnoma San Sebastin

Bloqueos

1) Seleccin de Vctimas Habra que seleccionar aquellos procesos que rompen el ciclo y tienen mnimo costo. Para ello debemos tener en cuenta: - Prioridad. - Tiempo de proceso efectuado, faltante. - Recursos a ser liberados (cantidad y calidad). - Cuntos procesos quedan involucrados. - Si por el tipo de dispositivo es posible volver atrs. 2) Rol back - Volver todo el proceso hacia atrs (cancelarlo). - Volver hacia atrs hasta un punto en el cual se haya guardado toda la informacin necesaria (CHECKPOINT)

11

Universidad Autnoma San Sebastin

Bloqueos

Conclusin.

12

Universidad Autnoma San Sebastin

Bloqueos

Anexo

13

Universidad Autnoma San Sebastin

Bloqueos

14

Universidad Autnoma San Sebastin

Bloqueos

15

También podría gustarte