2.6.2 Prevención de interbloqueos
La estrategia de prevención consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida a priori la posibilidad de interbloqueo. Los métodos para prevenir interbloqueos son de dos tipos:
- Métodos indirectos; que consisten en prevenir o impedir la aparición de alguna de las tres condiciones iniciales de interbloqueo.
- Métodos directos; que consisten en evitar la aparición del círculo vicioso de espera, es decir, la cuarta condición.
A continuación se examinarán las técnicas empleadas para impedir cada una de las cuatro condiciones.
- Condición de exclusión mutua: No puede anularse, ya que si el acceso a un recurso requiere exclusión mutua, el SO debe soportarlo.
- Retención y espera: Puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesitan a un tiempo y bloqueando al proceso hasta que todos los recursos puedan concedérsele simultáneamente. Esta solución resulta ineficiente por dos factores:
- En primer lugar, un proceso puede estar bloqueado durante mucho tiempo, esperando que se le concedan todas sus solicitudes de recursos cuando, de hecho, podría haber avanzado con sólo alguno de los recursos.
- Los recursos asignados a un proceso pueden permanecer sin usarse durante periodos considerables durante los cuales se priva a otros procesos de acceder a estos recursos.
- Condición de no apropiación: Esta condición puede prevenirse de varias formas:
- Si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deberá liberar los recursos que poseía y solicitarlos de nuevo junto con el recurso que le ha sido denegado.
- Si un proceso solicita un recurso que está retenido por otro proceso, el SO puede expulsar al segundo proceso y exigirle que libere el recurso. Este último esquema evita el interbloqueo sólo si dos procesos no pueden tener la misma prioridad con respecto a la posesión de un recurso.
- Círculo vicioso de espera: Esta condición puede prevenirse definiendo una ordenación lineal en los tipos de recursos. Si a un proceso se le han asignado recursos de tipo R sólo podrá realizar peticiones posteriores sobre los recursos de los tipos siguientes a R en la ordenación. Para implementar esta estrategia se asocia un índice a cada tipo de recurso de forma que si un proceso solicita el recurso Ri, y a continuación el recurso Rj, debe cumplirse que i < j.

