martes, 16 de abril de 2013

Prevensión del interbloqueo

 















Consite en tratar de eliminar una de las condiciones  de COFFMAN

1) Supresión de exclusión mutua: Se intenta acceder a los recursos de forma paralela. Como, por ejemplo, volcar al disco datos como si se hubiecen impreso (spooling). Debido a que este problema depende de la naturaleza del recurso, esta condición no se puede eliminar

2) Supresión de retención y espera: La retención y espera se da cuando un proceso espera un recurso cuando ya tiene asignado otros. Esto se debe a la petición interminable. Se puede solucionar de la siguientes formas

 2.1)  Hacer que lo procesos pidan los recursos al principio de su ejecución
         * Si están todos los recursos disponible, se le otorgan todos
         * Si no están todos disponibles, se volvera a intentar depsués de un rato
         * Inconveniente: Saber la necesidad de los procesos desde un principio
                                     Mucho recursos retenidos pero no usados

2.2)   Un proceso puede solcitar recursos siempre y cuando no tenga ninguno asignado, por                           ejemplo, si un recurso no esta disponible se deben liberar todos los que se tienen
           
En ambos casos puede que el proceso nunca se ejecute (inanición)

3) Supresión de la no expropiación: Permitir que el sistema operativo desasigne recursos a un proceso bloqueado
    * Si un proceso se bloquea por un recurso, los recursos retenidos quedan a disposición                             de los procesos activos
    *  El proceso ahora tiene que esperar por todos los recursos
    *  Penaliza a los procesos que necesitan mucho recursos
    Es posible seguir este protocolo en recuroso cuyo estado se puede guardar                                           y restaurar fácilmente (registro en CPU). Generalmente no puede aplciarse                                           a recursos tales como impresoras o unidades de cinta.

4) Espera circular : Se puede evitar forzando un orden en la petición de los recuros
     * Cada recurso tiene asignado un número de orden
     * Los recursos se deben pedir en orden ascendente
     * El orden de petición de los recursos debe ser según el uso normal de los recursos de un sistema
     * Desventajas: Se limita la libertad de escritura de código y se puede inducir a una
        mala utilización de los recursos





  

No hay comentarios:

Publicar un comentario