Está en la página 1de 6

PREVENCIN DE INTERBLOQUEOS

La estrategia bsica de la prevencin del interbloqueo consiste, a grandes rasgos, en disear su sistema de manera que est excluida, a priori, la posibilidad de interbloqueo. Los mtodos para prevenir el interbloqueo son de dos tipos: - Los mtodos indirectos que consisten en impedir la aparicin de alguna de las tres condiciones necesarias para que se de el interbloqueo. - Los mtodos directos que consisten en evitar la aparicin del circulo vicioso de espera. Exclusin mutua Si ningn recurso se puede asignar de forma exclusiva, no se producir interbloqueo. Sin embargo, existen recursos para los que no es posible negar la condicin de exclusin mutua. No obstante, es posible eliminar esta condicin en algunos procesos. Por ejemplo, una impresora es un recurso no compatible pues si se permite que dos procesos escriban en la impresora al mismo tiempo, la salida resulta catica. Pero con el spooling de salida varios procesos pueden generar salida al mismo tiempo. Puesto que el spooler nunca solicita otros recursos, se elimina el bloqueo originado por la impresora. El inconveniente es que no todos los recursos pueden usarse de esta forma (por ejemplo, la tabla de procesos no se presenta al spooling y, adems, la implementacin de esta tcnica puede introducir nuevos motivos de interbloqueo, ya que el spooling emplea una zona de disco finita) Retencin y espera La condicin de retencin y espera puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los recursos puedan concederse simultneamente. Esta solucin resulta ineficiente por dos factores: - En primer lugar, un proceso puede estar suspendido durante mucho tiempo, esperando que concedan todas sus solicitudes de recursos, cuando de hecho podra haber avanzado con solo algunos de los recursos. - Y en segundo lugar, los recursos asignados a un proceso pueden permanecer sin usarse durante periodos considerables, tiempo durante el cual se priva del acceso a otros procesos. No apropiacin

La condicin de no apropiacin puede prevenirse de varias formas. Primero, si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deber liberar sus recursos anteriores y solicitarlos de nuevo, cuando sea necesario, junto con el recurso adicional. Por otra parte, si un proceso solicita un recurso que actualmente est retenido por otro proceso, el sistema operativo debe expulsar al segundo proceso y exigirle que libere sus recursos. Este ltimo esquema evitar el interbloqueo slo si no hay dos procesos que posean la misma prioridad. Esta tcnica es prctica slo cuando se aplica a recursos cuyo estado puede salvarse y restaurarse ms tarde de una forma fcil, como es el caso de un procesador. Espera circular La condicin del espera circular 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 Ri antecede a Rj en la ordenacin si i<j. Entonces, supngase que dos procesos A y B, estn interbloqueados, porque A ha adquirido Ri y solicitado Rj, mientras que B ha adquirido Rj y solicitado Ri. Esta condicin es imposible porque implica quei<j y j<i. Como en la retencin y espera, la prevencin del circulo vicioso de espera puede ser ineficiente, retardando procesos y denegando accesos a recursos innecesariamente.

EVASIN DE INTERBLOQUEOS
Una forma de resolver el problema del interbloqueo, que se diferencia sutilmente de la prevencin, es la prediccin del interbloqueo. En la prevencin de interbloqueo, se obligaba a las solicitudes de recursos a impedir que sucediera, por lo menos, alguna de las cuatro condiciones de interbloqueo. Esto se hace indirectamente, impidiendo la aparicin de una de las tres condiciones necesarias (exclusin mutua, retencin y espera, no apropiacin) o directamente, impidiendo la aparicin de un crculo vicioso de espera. Se llega as a un uso ineficiente de los recursos y una ejecucin ineficiente de los procesos. Con prediccin del interbloqueo, por otro lado, se pueden alcanzar las tres condiciones necesarias, pero se realizan elecciones acertadas para asegurar que nunca se llega al punto de interbloqueo. La prediccin, por lo tanto, permite ms concurrencia que la prevencin. Con prediccin del interbloqueo, se decide dinmicamente si la peticin actual de asignacin de un recurso podra, de concederse, llevar potencialmente a un interbloqueo. La prediccin del interbloqueo necesita, por lo tanto, conocer las peticiones futuras de recursos. Enfoques para la prediccin del interbloqueo:

* Estado seguro: si todos los procesos que ya tienen concedidos los recursos tienen la posibilidad de ser completados en algn orden determinado, incluso si cada uno de esos procesos utilizara todos los recursos a los que est autorizado. * Estado no seguro. No implica la existencia de interbloqueo. Indica que se podra dar alguna secuencia de solicitudes que llevara al sistema a un estado de interbloqueo. El modelo ms simple y til requiere que cada proceso declare el mximo nmero de recursos de cada tipo que puede necesitar. El algoritmo de evasin de interbloqueos dinmicamente examina el estado de alocacin de recursos para asegurar que no puede haber una condicin de espera circular. El estado de alocacin de recursos est definido por el nmero de recursos disponibles y alocados, y las mximas demandas de los procesos. ESTADO SEGURO

Si un sistema est en un estado seguro no hay interbloqueo. Si un sistema est en un estado inseguro posibilidad de interbloqueo. Evasin asegura que el sistema nunca va a entrar en un estado inseguro.

ALGORITMO DE EVASIN Si slo hay una instancia de un tipo de recurso. Use un grafo de alocacin de recursos. Para mltiple instancias de un tipo de recursos. Use el algoritmo del banquero. ALGORITMO DEL GRAFO DE ALOCACIN DE RECURSOS

ALGORITMO DEL BANQUERO Mltiples instancias. Cada proceso debe reclamar a priori el mximo uso. Cuando un proceso requiere un recurso puede tener que esperar. Cuando un proceso obtiene todos sus recursos debe retornarlos en una cantidad finita de tiempo. ESTRUCTURA DE DATOS DEL ALGORITMO DEL BANQUERO Sea n = nmero de procesos, y m = nmero de tipos de recursos. Disponible: Vector de longitud m. Si disponible [j] = k, hay k instancias del tipo de recurso Rj disponible. Max: matriz n x m. Si Max [i,j] = k, entonces el proceso Pi puede requerir a lo sumo k instancias del recurso de tipo Rj Alocacin: matriz n x m. Si Alocacin[i,j] = k entonces Pi tiene alocadas k instancias de Rj. Necesidad: matriz n x m. Si Necesidad [i,j] = k, entonces Pi puede necesitar k instancias ms de Rj para completar su tarea.

Necesidad [i,j] = Max[i,j] Alocacin [i,j].

1. Sean Trab y Final vectores de longitud m y n, respectivamente. Se inicializan: Trab:= Disponible Final [i] = falso para i - 1,3, , n. 2. Encuentre un i tal que cumplan: (a) Final [i] = falso (b) Necesidadi Trab Si tal i no existe, vaya al paso 4. 3. Trab := Trab + Alocacini Final[i] := verdadero vaya al paso 2. 4. Si Final [i] = verdadero para todo i, entonces el sistema est en un estado seguro.

ALGORITMO DE REQUERIMIENTO DE RECURSOS PARA PROCESO Pi.

También podría gustarte